UVA 10010 沃尔多夫在哪里

来源:互联网 发布:淘宝没有花呗支付方式 编辑:程序博客网 时间:2024/05/01 04:35

字符串基础题目

讨厌的scanf

#include <iostream>#include <cstdio>#include <cstring>#include <cmath>using namespace std;///#define INF 0xffffff7#define MAXN 60char grid[MAXN][MAXN];int m, n, kk;char word[MAXN];const int rd[]={-1, -1, 0, 1, 1, 1, 0, -1},cd[]={0, 1, 1, 1, 0, -1, -1, -1};bool search_word(int startrow, int startcol, int len){int i, j;for (i = 0; i < 8; i++){j = 0;int temprow = startrow;int tempcol = startcol;while (j < len){if (temprow < 0 || temprow >= m || tempcol < 0 || temprow >= n)break;if ( (grid[temprow][tempcol] == word[j]) || (grid[temprow][tempcol] - word[j] == 'A' - 'a') || (word[j] - grid[temprow][tempcol] == 'A' - 'a')){temprow += rd[i];tempcol += cd[i];j++;}else break;}if (j == len)return true;}return false;}int main(){///int i, j;int nCases;scanf("%d", &nCases);//cin >> nCases;while (nCases--){        memset(grid, 0, sizeof(grid));scanf("%d%d", &m, &n);for (i = 0; i < m; i++){getchar();for (j = 0; j < n; j++)scanf("%c", &grid[i][j]);}//cin >> grid[i][j];scanf("%d", &kk);getchar();for (i = 0; i < kk; i++){gets(word);bool flag = false;int len = strlen(word);for (j = 0; j < m; j++){for (int k = 0; k < n; k++){if (search_word(j, k, len)){printf("%d %d\n", j + 1, k + 1);flag = true;break;}}if (flag)break;}}if (nCases != 0)printf("\n");}    ///    return 0;}


 

原创粉丝点击