求助,只通过最后一个测试点
查看原帖
求助,只通过最后一个测试点
1514888
yuanzhe_2421010125楼主2025/1/13 16:40

求助,只通过最后一个测试点

#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;
}
2025/1/13 16:40
加载中...