为什么43分#2#3#5#7WA?求调
查看原帖
为什么43分#2#3#5#7WA?求调
1322746
Noah03楼主2024/12/22 02:34
#include<bits/stdc++.h>
using namespace std;
const int MAXN=10+10;
char a[MAXN][MAXN],b[MAXN][MAXN],c[MAXN][MAXN],d[MAXN][MAXN];
int n;
void fz1(){
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			d[i][j]=c[i][j];
		}
	}
	return;
}
void fz2(){
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			c[i][j]=d[i][j];
		}
	}
	return;
}
void fz3(){
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			c[i][j]=a[i][j];
		}
	}
	return;
}
bool IsEqual(){
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			if (c[i][j]!=b[i][j]) return false;
		}
	}
	return true;
}
bool f1(){ 
	for(int i=1,j=1;i<=n&&j<=n;i++,j++){
		for(int i2=n,j2=1;i2>=1&&j2<=n;i2--,j2++){
			c[i][j2]=a[i2][j];
		}
	}
	return IsEqual();
}
bool f2(){fz3();f1();f1();return IsEqual();}
bool f3(){fz3();f1();f1();f1();return IsEqual();}
bool f4(){
	fz3();
	for(int i=1;i<=n;i++){
		for(int j=1,j2=n;j<=n&&j2>=1;j++,j2--){
			c[i][j]=a[i][j2];
		}
	}
	return IsEqual();
}
bool f5(){
	fz3();
	f4();fz1();f1();
	if (IsEqual()) return true;
	fz2();fz1();f2();
	if (IsEqual()) return true;
	fz2();fz1();f3();
	if (IsEqual()) return true;
	return false;
}
bool f6(){fz3();return IsEqual();}
int solve(){
	if (f1()) return 1;
	else if (f2()) return 2;
	else if (f3()) return 3;
	else if (f4()) return 4;
	else if (f5()) return 5;
	else if (f6()) return 6;
	else return 7;
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cin>>a[i][j];
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cin>>b[i][j];
		}
	}
	cout<<solve();
	return 0;
}
2024/12/22 02:34
加载中...