PKU 3752 字母旋转游戏

http://poj.org/problem?id=3752
0以上の整数m,nが与えられるので、問題にあるようにアルファベットを出力する。

やるだけ。
最近簡単な問題(自分が解ける問題)が減ってきているような気がして参ってます。

main(){
  int n,m;
  cin>>m>>n;
  int ans[m][n];
  memset(ans,0,sizeof(ans));
  int x=0,y=0,dir=0;
  rep(i,n*m){
    ans[x][y]=i+1;
    x+=dx[dir];
    y+=dy[dir];
    if(x<0 || m<=x ||
       y<0 || n<=y ||
       ans[x][y]){
      x-=dx[dir];
      y-=dy[dir];
      dir=(dir+1)%4;
      x+=dx[dir];
      y+=dy[dir];
    }
  }
  rep(i,m){
    rep(j,n)cout<<"   "<<char((ans[i][j]-1)%26+'A');
    cout<<endl;
  }
}