問題 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=1104
ロボットを動かしてSTOPの命令がきたら終了して最終地点を出力します。
気をつける点としては範囲外になったときの対処法です。
int main(void){ int h,w; while(cin >> w >> h ,w|h){ string str; int n; int x,y,z; x = 1,y = 1,z = 1; for(;;){ cin >> str; if(str == "FORWARD"){ cin >> n; if(z == 1) y += n; else if(z == 2) x += n; else if(z == 3) y -= n; else if(z == 4) x -= n; } if(str == "BACKWARD"){ cin >> n; if(z == 1) y -= n; else if(z == 2) x -= n; else if(z == 3) y += n; else if(z == 4) x += n; } if(str == "RIGHT"){ if(z == 4) z = 1; else z += 1; } if(str == "LEFT"){ if(z == 1) z = 4; else z -= 1; } if(x < 1) x = 1; else if(x > w) x = w; if(y < 1) y = 1; else if(y > h) y = h; if(str == "STOP"){ cout << x <<" "<<y << endl; break; } } } return 0; }