UVaOJ 10010 - Where's Waldorf?(非AC版本)

#include <stdio.h>  
#include <string.h>  
#include <ctype.h>  
char s[52][52];  
char w[52];  
int main()  
{  
    memset(s, '\0', sizeof(s));  
    memset(w, '\0', sizeof(w));  
    int testCaseN = 0;  
    while(scanf("%d", &testCaseN) != EOF)
	{
		while (testCaseN--)  
		{  
			int m = 0;  
			int n = 0;  
			scanf("%d %d", &m, &n);  
			for (int i = 0; i < m; ++i)  
			{  
				scanf("%s", w);  
				for (int j = 0; j < n; ++j)  
				{  
					s[i][j] = tolower(w[j]);  
				}  
			}  
  
			int wordN = 0;  
			scanf("%d", &wordN);  
			while (wordN--)  
			{  
				scanf("%s", w);  
				int len = strlen(w);  
				for (int i = 0; i < len; ++i)  
				{  
					w[i] = tolower(w[i]);  
				}  
  
				bool isFound = false;
				for (int i = 0; i < m; ++i)  
				{
					for (int j = 0; j < n; ++j)  
					{  
						if (j + len <= n)//1. left to right  
						{  
							isFound = true;
							for (int k = 0; k < len; ++k)  
							{  
								if (w[k] != s[i][j + k])  
								{  
									isFound = false;
									break;  
								}  
							}  
							if (isFound)  
							{
								printf("%d %d\n", i + 1, j + 1);
								break;  
							}  
						}
						if (isFound)
							break;
						if (j + 1 >= len)//2. r to l  
						{  
							isFound = true;
							for (int k = 0; k < len; ++k)  
							{  
								if (w[k] != s[i][j - k])  
								{  
									isFound = false;  
									break;  
								}  
							}  
							if (isFound)  
							{
								printf("%d %d\n", i + 1, j + 1);  
								break;  
							}  
						}
						if (isFound)
							break;
						if (i + len <= m)//3. top down  
						{  
							isFound = true;
							for (int k = 0; k < len; ++k)  
							{  
								if (w[k] != s[i + k][j])  
								{  
									isFound = false;
									break;  
								}  
							}  
							if (isFound)  
							{
								printf("%d %d\n", i + 1, j + 1);  
								break;  
							}  
						}
						if (isFound)
							break;
						if (i + 1 >= len)//4. bottom up  
						{  
							isFound = true;  
							for (int k = 0; k < len; ++k)  
							{  
								if (w[k] != s[i - k][j])  
								{  
									isFound = false;  
									break;  
								}  
							}  
							if (isFound)  
							{
								printf("%d %d\n", i + 1, j + 1);  
								break;  
							}  
						}
						if (isFound)
							break;
						if (j + len <= n && i + 1 >= len)//5. left-bottom to right-up  
						{  
							isFound = true;  
							for (int k = 0; k < len; ++k)  
							{  
								if (w[k] != s[i - k][j + k])  
								{  
									isFound = false;  
									break;  
								}  
							}  
							if (isFound)  
							{
								printf("%d %d\n", i + 1, j + 1);  
								break;  
							}  
						}
						if (isFound)
							break;
						if (n - j >= len && m - i >= len)//7. left-top to right-down  
						{  
							isFound = true;  
							for (int k = 0; k < len; ++k)  
							{  
								if (w[k] != s[i + k][j + k])  
								{  
									isFound = false;  
									break;  
								}  
							}  
							if (isFound)  
							{
								printf("%d %d\n", i + 1, j + 1);   
								break;
							}
						}
						if (isFound)
							break;
						if (j + 1 >= len && i + 1 >= len)//8. right-bottom to left-top    
						{  
							isFound = true;  
							for (int k = 0; k < len; ++k)  
							{  
								if (w[k] != s[i - k][j - k])  
								{  
									isFound = false;  
									break;  
								}  
							}  
							if (isFound)  
							{
								printf("%d %d\n", i + 1, j + 1);   
								break;
							}
						}
						if (isFound)
							break;
						if (j + 1 >= len && i + len <= m)//6. right-top to left-down  
						{  
							isFound = true;  
							for (int k = 0; k < len; ++k)  
							{  
								if (w[k] != s[i + k][j - k])  
								{  
									isFound = false;  
									break;  
								}  
							}  
							if (isFound)  
							{
								printf("%d %d\n", i + 1, j + 1);  
								break;
							}
						}
						if (isFound)
							break;
					}  
					if (isFound)
						break;
				}
				//if(!isFound)
				//	printf("51 51\n");
				if(testCaseN)
					printf("\n");
			}  
		}
	}
}  

啊啊啊!What the fuck!

What the hell!

我已经检查了好久,对照过别人的不同版本,还是找不出哪里错了,不给我AC了!

日后有机会再做!

我需要其它水题回复信心!


求其它人能看出本代码的漏洞!

求解啊,求解!

求高人指点!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值