您的位置:首页 > 其它

UVa 1588 Kickdown

2015-10-11 23:55 113 查看
数组开大点

#include <iostream>
#include <cstring>
#include <algorithm> 

using namespace std;

char bottom[1010];
char top[1010];

int main()
{
	while(cin >> bottom >> top)
	{
		//from left
		int bl = strlen(bottom);
		int tl = strlen(top);
		
		int len = max(bl, tl);
		
		int i, j;
		
		int res1 = 0;
		int res2 = 0;
		int res;
		
		for(i = 0; i < bl; i++)
		{
			for(j = 0; j < tl; j++)
			{
				if(bottom[i+j] + top[j] - '0' - '0' > 3)
				{
					break;
				}
			}
			if(j == tl)
			{
			    break;	
			} 
		}
		
		res1 = i + tl;
		
		for(i = 0; i < tl; i++)
		{
			for(j = 0; j < bl; j++)
			{
				if(bottom[j] + top[i+j] - '0' - '0' > 3)
				{
					break;
				}
			}
			if(j == bl)
			{
			    break;	
			} 
		}
		
		res2 = i + bl;
		
		res = min(res1, res2);
		
		if(res > len) cout << res << endl;
		else cout << len << endl;
		
		memset(bottom, 0, sizeof(bottom));
		memset(top, 0, sizeof(top));
	}	
	return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: