标签:模拟
代码:
#include <stdio.h> #include <string.h> #define M 105 int map[M][M]; char d1[] = {'L', 'U', 'R', 'D'}; char d0[] = {'L', 'D', 'R', 'U'}; int main(){ int n, m; scanf("%d%d", &n, &m); int i, j, sx, sy, step; char ch; for(i = 0; i < n; i ++) for(j = 0; j < m; j ++) scanf("%d", &map[i][j]); scanf("%d %d %c %d", &sx, &sy, &ch, &step); //step ++; while(step --){ // printf("%d %d %d %c %d step\n", sx, sy, map[sx][sy], ch, step); if(map[sx][sy]){ map[sx][sy] = 0; for(i = 0; i < 4; ++ i) if(d1[i] == ch) break; ch = d1[(i+1)%4]; switch(ch){ case 'L' : sy--;break; case 'R' : sy++; break; case 'U' : sx--; break; case 'D' : sx++; break; } } else{ map[sx][sy] = 1; for(i = 0; i < 4; ++ i) if(d0[i] == ch) break; ch = d0[(i+1)%4]; switch(ch){ case 'L' : sy--;break; case 'R' : sy++; break; case 'U' : sx--; break; case 'D' : sx++; break; } } } printf("%d %d\n", sx, sy); return 0; }
标签:模拟
原文地址:http://blog.csdn.net/shengweisong/article/details/42840731