求助,只通过最后一个测试点
#include <iostream>
using namespace std;
int arr[510][510];
int brr[510][510];
int main()
{
int n, m;
cin >> n >> m;
for (int i = 1; i <= n * n; i++)
arr[(i - 1) / n + 1][(i - 1) % n + 1] = i;
for (int i = 0; i < m; i++)
{
int x, y, r, z;
cin >> x >> y >> r >> z;
for (int j = 1; j <= n; j++)
for (int k = 1; k <= n; k++)
brr[j][k] = arr[j][k];
for (int j = x - r; j <= x + r; j++)
for (int k = y - r; k <= y + r; k++)
brr[k][j] = arr[j][k];
for (int j = x - r; j <= x + r; j++)
for (int k = y - r; k <= y + r; k++)
{
if (!z)
arr[j][2 * y - k] = brr[j][k];
else
arr[2 * x - j][k] = brr[j][k];
}
}
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
cout << arr[i][j] << " ";
cout << endl;
}
return 0;
}