10010 - Where's Waldorf?
2015-01-20 23:17
176 查看
#include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <string.h> #define PENDING 2 void try_search( char * tab, char * target, int row, int col, int len, int d_r, int d_c, int * res_r, int * res_c, bool * searched ) { if( * searched ) return; int r, c; for( r = 0; r < row; r++ ) for( c = 0; c < col; c++ ) { int r1 = r, c1 = c; int l; for( l = 0; l < len; l++ ) { if( r1 < 0 || r1 >= row || c1 < 0 || c1 >= col || tab[ r1 * col + c1 ] != target[l] ) { l = len + 1; } r1 += d_r; c1 += d_c; } if( l == len ) { * searched = true; * res_r = r; * res_c = c; r = row; c = col; } } } int main( int argc, char * argv[] ) { int z, Z; scanf( "%d", &Z ); for( z = 0; z < Z; z++ ) { if( z ) printf( "\n" ); int row, col; scanf( "%d %d", &row, &col ); char * tab = malloc( sizeof( char ) * row * col + PENDING ); int i, j; for( i = 0; i < row; i++ ) scanf( "%s", tab + i * col ); for( i = 0; i < row * col; i++ ) tab[ i ] = toupper( tab [ i ] ); int x, X; scanf( "%d", &X ); for( x = 0; x < X; x++ ) { char target[64]; scanf( "%s", target ); int len = strlen( target ); for( i = 0; i < len; i++ ) target[ i ] = toupper( target[ i ] ); bool searched = false; int res_r = 0, res_c = 0; try_search( tab, target, row, col, len, 0, 1, &res_r, &res_c, &searched ); try_search( tab, target, row, col, len, 0, -1, &res_r, &res_c, &searched ); try_search( tab, target, row, col, len, 1, -1, &res_r, &res_c, &searched ); try_search( tab, target, row, col, len, 1, 0, &res_r, &res_c, &searched ); try_search( tab, target, row, col, len, 1, 1, &res_r, &res_c, &searched ); try_search( tab, target, row, col, len, -1, -1, &res_r, &res_c, &searched ); try_search( tab, target, row, col, len, -1, 0, &res_r, &res_c, &searched ); try_search( tab, target, row, col, len, -1, 1, &res_r, &res_c, &searched ); printf( "%d %d\n", res_r + 1, res_c + 1 ); } free( tab ); } return 0; }
相关文章推荐
- uva_10010-Where's Waldorf?
- uva 10010 Where's Waldorf?
- UVA 10010 Where's Waldorf?
- uva10010 - Where's Waldorf?
- UVA 10010- Where's Waldorf?(八方向寻找字符串)
- UVA 10010 - Where's Waldorf?(字符串)
- UVA - 10010 Where's Waldorf?
- UVA - 10010 Where's Waldorf?
- UVA 10010 Where's Waldorf?
- UVa 10010 - Where's Waldorf?
- UVA 10010-- Where's Waldorf?(暴力串处理)
- UVA - 10010 Where's Waldorf?
- UVA 之10010 - Where's Waldorf?
- UVaOJ 10010 - Where's Waldorf?
- UVa 10010 Where's Waldorf?
- 10010 - Where's Waldorf?
- Uva 10010-Where's Waldorf?
- UVA 10010 Where's Waldorf?
- 10010 - Where&#39;s Waldorf?
- UVA 10010 Where's Waldorf?