2014年1月7日 星期二

[ZJ] a417. 螺旋矩陣


#include<stdio.h>
#include<string.h>
int d[4][2]={{0,1},{1,0},{0,-1},{-1,0}},r[2]={1,-1},s[105][105];
int main(){
    int t,n,m,i,j,k,add,x,y;
    scanf("%d",&t);
    while(t--){
        memset(s,0,sizeof(s));
        scanf("%d%d",&n,&m);
        m--;
        if(m==0) k=0;
        else k=3;
        x=y=0;
        s[x][y]=1;
        for(add=2;add<=n*n;add++){
            while(!(x+d[k][0]>=0 && x+d[k][0]<n && y+d[k][1]>=0 && y+d[k][1]<n && s[x+d[k][0]][y+d[k][1]]==0)) k=(k+r[m]+4)%4;
            x+=d[k][0],y+=+d[k][1];
            s[x][y]=add;
        }
        for(i=0;i<n;i++){
            for(j=0;j<n;j++)
                printf("%5d",s[i][j]);
            puts("");
        }
    }
}

沒有留言:

張貼留言