SRM 441 DIV2
過去問です。
オーバーフロー怖いです。
250pt
Easy - DifferentStrings
普通に調べるだけ。
class DifferentStrings { public: int minimize(string A, string B) { int diff = 128; for(int i=0;i<=B.size()-A.size();i++){ int cnt = 0; for(int j=0;j<A.size();j++) if(B[i+j]!=A[j])cnt++; diff = min(diff,cnt); } return diff; } };
500pt
Medium - PaperAndPaintEasy
オーバーフロー怖いよ、怖いよ。
class PaperAndPaintEasy { public: long long computeArea(int width, int height, int xfold, int cnt, int x1, int y1, int x2, int y2) { int a = min(xfold,width-xfold); long long ret = (long long)width*height; ret -= (long long)2*(cnt+1)*(min(a,x2)-min(a,x1))*(y2-y1); ret -= (long long)(cnt+1)*(max(a,x2)-max(a,x2))*(y2-y1); return ret; } };
キャストを忘れてて、オーバーフローが発生するデータで死んだ。
この問題のチャレンジポイントは、「キャストしてるか」になりそう。