代码:
#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