八个RE求助(C)
查看原帖
八个RE求助(C)
1651599
Yuanlj楼主2025/2/4 14:24

只有最后一个测试点是AC,八个RE,一个WA,有大佬可以帮我看看吗😭

#include <stdio.h>

int main()
{
    int n,m;
    scanf("%d %d",&n,&m);
    int magic[m][4];
    for(int i=0; i<m; i++)
    {
        for(int j=0; j<4; j++)
        {
            scanf("%d",&magic[i][j]);
        }
    }
    int num[n][n];
    for(int i=0; i<n; i++)
    {
        for(int j=0; j<n; j++)
        {
            num[i][j]=(n*i)+(j+1);
        }
    }

    for(int p=0; p<m; p++)
    {
        int x=magic[p][0]-1;
        int y=magic[p][1]-1;
        int r=magic[p][2];
        int z=magic[p][3];
        if(z==0)
        {
            for(int i=0; i<n; i++)
            {
                for(int j=0; j<n; j++)
                {
                    if(i-x>=0-r&&i-x<=r&&j-y>=0-r&&j-y<=r&&i-x+j-y<0)
                    {
                        int temp;
                        int k1=i-x;
                        int k2=j-y;
                        temp=num[i][j];
                        num[i][j]=num[x-k2][y-k1];
                        num[x-k2][y-k1]=temp;
                    }
                }
            }
        }
        else if(z==1)
        {
            for(int i=x-r+1; i<=x+r; i++)
            {
                for(int j=y-r; j<i; j++)
                {
                    int temp;
                    int k1=i-x;
                    int k2=j-y;
                    temp=num[i][j];
                    num[i][j]=num[x+k2][y+k1];
                    num[x+k2][y+k1]=temp;
                }
            }
        }
        for(int i=x-r; i<x; i++)
        {
            for(int j=y-r; j<=y+r; j++)
            {
                int temp;
                int k=x-i;
                temp=num[i][j];
                num[i][j]=num[x+k][j];
                num[x+k][j]=temp;
            }
        }
    }

    for(int i=0; i<n; i++)
    {
        for(int j=0; j<n; j++)
        {
            printf("%d ",num[i][j]);
        }
        printf("\n");
    }
    return 0;
}

2025/2/4 14:24
加载中...