0104-Magic Tile
http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0104&lang=jp
すでに通ったマスを記録しておく。
同じマスを二度通った場合ループしていることが分かる。
#include <cstdio> char m[102][102];//マップ int main(){ while(1){ int h,w,x,y; scanf("%d%d",&h,&w); if(h==0&&w==0)return 0; for(y=0;y<h;y++) scanf("%s",m[y]); x=0;y=0; for(;;){ h=m[y][x];m[y][x]='!'; if(h=='!'){puts("LOOP");break;} else if(h=='v') y++; else if(h=='^') y--; else if(h=='>') x++; else if(h=='<') x--; else{printf("%d %d\n",x,y);break;} } } return 0; }