测试数据没错但全WA
查看原帖
测试数据没错但全WA
117846
Cyoutous楼主2024/9/19 22:16

求救 为什么

#define MAX 1005
#include<stdio.h>
using namespace std;

int n, m;
int mtx[MAX][MAX];

void rotate(int x, int y, int r, int z)
{
    char temp[MAX][MAX];
    for (int i = x - r; i <= x + r; i++)
        for (int j = y - r; j <= y + r; j++)
            temp[i][j] = mtx[i][j];

    int ti = x - r, tj = y - r;
    if (z == 0)
    {
        for (int j = y - r; j <= y + r; j++)
        {
            for (int i = x + r; i >= x - r; i--)
            {
                mtx[ti][tj] = temp[i][j];
                tj++;
            }
            ti++;
            tj = y - r;
        }
    }
    else if (z == 1)
    {
        for (int j = y + r; j >= y - r; j--)
        {
            for (int i = x - r; i <= x + r; i++)
            {
                mtx[ti][tj] = temp[i][j];
                tj++;
            }
            ti++;
            tj = y - r;
        }
    }
}

int main()
{
    scanf("%d%d", &n, &m);
    int cnt = 1;
    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= n; j++)
        {
            mtx[i][j] = cnt;
            cnt++;
        }
    
    int x, y, r, z;
    for (int i = 1; i <= m; i++)
    {
        scanf("%d%d%d%d", &x, &y, &r, &z);
        rotate(x, y, r, z);
    }

    for (int i = 1; i <= n; i++)
    {
        for (int j = 1; j <= n; j++)
        {
            if (j != 1)
                printf(" ");
            printf("%d", mtx[i][j]);
        }
        printf("\n");
    }

    return 0;
}
        
2024/9/19 22:16
加载中...