//这个,,,没认真看题目,行和列都是从0开始的.....导致结果一直不对》。。。。。。。。。
#include<iostream> #include<cstdio> using namespace std; char dir[4] = {'U', 'L', 'D', 'R'};//0,1,2,3 int main() { int m, n; cin >> m >> n; int a[m+5][n+5]; for(int i=0; i<m; i++){ for(int j=0; j<n; j++){ cin >> a[i][j]; } } int sr, sc, c, k; // cin >> sr >> sc; scanf("%d%d", &sr, &sc); getchar(); // cin >> c >> k; scanf("%c%d", &c, &k); int tmp = 1, Dir=0; for(int i=0; i<4; i++){ if(dir[i] == c){ Dir = i; // cout << i << endl; } } for(int i=0; i<k; i++){ // printf("%d %d %d %c\n",sr, sc, a[sr][sc], c); if(a[sr][sc] == 1){//黑格子 a[sr][sc] = 0; tmp = 1; } else if(a[sr][sc] == 0) { a[sr][sc] = 1; tmp = -1; } switch(c){ case 'U': sc += tmp; Dir = (Dir-tmp+4)%4; break; case 'D': sc -= tmp; Dir = (Dir-tmp+4)%4; break; case 'L': sr -= tmp; Dir = (Dir-tmp+4)%4; break; case 'R': sr += tmp; Dir = (Dir-tmp+4)%4; break; } //cout << (char)c << " "; c = dir[Dir]; // printf("%d %d %d %c\n",sr, sc, a[sr][sc], c); } cout << sr << " " << sc << endl; return 0; }