PersonalCorpus 版 (精华区)

1164422 Big Guava ... 10016 Accepted
0:00.320 444 2002/10/12 13:53:51.738


void main()
{
#ifndef ONLINE_JUDGE
    freopen("c:\\0acm\\uva\\i10016","r",stdin);
    freopen("c:\\0acm\\uva\\o10016","w",stdout);
#endif

    int m,i,j,k,t, map[101][101],n,a,b,c;
    char s[100];

    scanf("%d\n",&m);
    while (m--) {
        scanf("%d\n",&n);
        for (i=0;i<n;i++) for (j=0;j<n;j++) scanf("%d",&map[i][j]);
        for (i=0;i<(n+1)/2;i++) {
            j=n-i-1;
            scanf("%d",&t);
            while (t--) {
                scanf("%d",&k);
                if (k==1) {
                    for (a=i;a<=j;a++) {
                        c=map[i][a];map[i][a]=map[j][a];map[j][a]=c;
                    }
                    for (a=i+1;a<=(i+j)/2;a++) {
                        c=map[a][i];map[a][i]=map[n-1-a][i];
map[n-1-a][i]=c;
                        c=map[a][j];map[a][j]=map[n-1-a][j];
map[n-1-a][j]=c;
                    }
                    continue;
                }
                if (k==2) {
                    for (a=i;a<=j;a++) {
                        c=map[a][i];map[a][i]=map[a][j];map[a][j]=c;
                    }
                    for (a=i+1;a<=(i+j)/2;a++) {
                        c=map[i][a];map[i][a]=map[i][n-1-a];
map[i][n-1-a]=c;
                        c=map[j][a];map[j][a]=map[j][n-1-a];
map[j][n-1-a]=c;
                    }
                    continue;
                }
                if (k==3) {
                    for (a=i;a<=j;a++) {
                        c=map[i][a];map[i][a]=map[a][i];map[a][i]=c;
                        c=map[a][j];map[a][j]=map[j][a];map[j][a]=c;
                    }
                    c=map[i][j];map[i][j]=map[j][i];map[j][i]=c;
                    continue;
                }
                if (k==4) {
                    for (a=i;a<=j;a++) {
                        c=map[i][a];map[i][a]=map[n-1-a][n-1-i];
map[n-1-a][n-1-i]=c;
                        c=map[a][i];map[a][i]=map[n-1-i][n-1-a];
map[n-1-i][n-1-a]=c;
                    }
                    c=map[i][i];map[i][i]=map[j][j];map[j][j]=c;
                }
            }
        }
        for (i=0;i<n;i++) {
            printf("%d",map[i][0]);
            for (j=1;j<n;j++) printf(" %d",map[i][j]);
            printf("\n");
        }

    }
}
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:22.474毫秒