ichirin2501's diary

いっちりーん。

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;
	}
};

キャストを忘れてて、オーバーフローが発生するデータで死んだ。
この問題のチャレンジポイントは、「キャストしてるか」になりそう。