一个都过不了,第一个测试点自己测的时候输出没问题,救救孩子吧
查看原帖
一个都过不了,第一个测试点自己测的时候输出没问题,救救孩子吧
1189413
PURE_LOVE楼主2024/3/8 15:26
#pragma warning(disable:4996)
#include<bits/stdc++.h>
int n = 0;
void duicheng(int** arr, int** brr)
{
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n/2; j++)
		{
			arr[i][j] = brr[i][n-1-j];
		}
	}
}
void copy(int**arr,int**brr)
{
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			arr[i][j]=brr[i][j];
		}
	}
}
void hanshu(int**arr)
{
	char c = 0;
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			scanf("%c", &c);
			if (c == '\n')
			{
				scanf("%c", &c);
			}
			if (c == '@')
			{
				arr[i][j] = 1;
			}
		}
	}
}
int check(int** arr, int** brr)
{
	int book = 1;
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			if (arr[i][j]!= brr[i][j])
			{
				book = 0;
			}
		}
	}
	return book;
}
int fang90(int**arr, int**brr)
{
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			arr[j][n-1-i] = brr[i][j];
		}
	}
	return 0;
}
int fang180(int** arr, int** brr)
{
	fang90(arr, brr);
	copy(brr, arr);
	fang90(arr, brr);
	return 0;
}
int fang270(int** arr, int** brr)
{
	fang90(arr, brr);
	copy(brr, arr);
	fang180(arr, brr);
	return 0;
}
int main()
{
	scanf("%d", &n);
	int** arr = (int**)calloc(n ,sizeof(int*));
	for (int i = 0; i < n; i++)
	{
		arr[i] = (int*)calloc(n, sizeof(int));

	}
	int** brr = (int**)calloc(n, sizeof(int*));
	for (int i = 0; i < n; i++)
	{
		brr[i] = (int*)calloc(n, sizeof(int));
	}
	int** xrr = (int**)calloc(n, sizeof(int*));
	for (int i = 0; i < n; i++)
	{
		xrr[i] = (int*)calloc(n, sizeof(int));
	}
	int**mrr = (int**)calloc(n, sizeof(int*));
	for (int i = 0; i < n; i++)
	{
		mrr[i] = (int*)calloc(n, sizeof(int));
	}
	copy(mrr, arr);
	hanshu(arr);
	hanshu(brr);
	if (check(arr, brr))
	{
		printf("6");
		return 0;
	}
	fang90(xrr, arr);
	if (check(xrr, brr))
	{
		printf("1");
		return 0;
	}
	copy(arr, mrr);
	fang180(xrr, arr);
	if (check(xrr, brr))
	{
		printf("2");
		return 0;
	}
	copy(arr, mrr);
	fang270(xrr, arr);
	if (check(xrr, brr))
	{
		printf("3");
		return 0;
	}
	copy(arr, mrr);
	duicheng(xrr, arr);
	if (check(xrr, brr))
	{
		printf("4");
		return 0;
	}
	if (1)
	{
		duicheng(xrr, arr);
		copy(arr, xrr);
		fang90(xrr, arr);
		if (check(xrr, brr))
		{
			printf("5");
			return 0;
		}
		copy(arr, mrr);
		fang180(xrr, arr);
		if (check(xrr, brr))
		{
			printf("5");
			return 0;
		}
		copy(arr, mrr);
		fang270(xrr, arr);
		if (check(xrr, brr))
		{
			printf("5");
			return 0;
		}
	}
	printf("7");
	return 0;
}
```c
2024/3/8 15:26
加载中...