57分求助,辣鸡Oler,代码过长,大佬见谅
查看原帖
57分求助,辣鸡Oler,代码过长,大佬见谅
773816
Over_fame楼主2022/8/21 22:23

代码能力有限,简短不了

#include<iostream>

using namespace std;
char a[11][11],f[11][11],newone[11][11],newone_fake[11][11];
int n;
bool cmp=false;
bool way_4_turn(){
	int pi=1,pj=n;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			newone[pi][pj--]=a[i][j];
		}
		pi++;
		pj=n;
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			if(newone[i][j]!=f[i][j]){
				cmp=1;
				return false;
			}
		}
	}
	cout<<4<<endl;
	return true;
}
bool way_3_270(){
	int pi=0,pj=n;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			newone_fake[++pi][pj]=newone[i][j];
		}
		pi=0;
		pj--;
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			newone[i][j]=newone_fake[i][j];
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			if(f[i][j]!=newone[i][j]){
				if(way_4_turn()) return true;
				return false;
			}
		}
	}
	cout<<3<<endl;
	return true;
}
bool way_2_180(){
	int pi=0,pj=n;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			newone_fake[++pi][pj]=newone[i][j];
		}
		pi=0;
		pj--;
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			newone[i][j]=newone_fake[i][j];
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			if(newone[i][j]!=f[i][j]){
				if(way_3_270()) return true;
				return false;
			}
		}
	}
	cout<<2<<endl;
	return true;
}
bool way_1_90(){
	int pi=0,pj=n;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			newone[++pi][pj]=a[i][j];
		}
		pi=0;
		pj--;
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			if(f[i][j]!=newone[i][j]){
				if(way_2_180()) return true;
				return false;
			}
		}
	}
	cout<<1<<endl;
	return true;
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cin>>a[i][j];
		}
	}
	int z_sum=0;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cin>>f[i][j];
			if(a[i][j]==f[i][j]){
				z_sum++;
			}
		}
	}
	if(z_sum==n*n){
		cout<<6<<endl;
		return 0;
	}
	if(way_1_90()) return 0;
	
	if(cmp){
		for(int i=1;i<=n;i++){
			for(int j=1;j<=n;j++){
				a[i][j]=newone[i][j];
			}
		}
		if(way_1_90()){
			cout<<5<<endl;
			return 0;
		}
		cout<<7<<endl;
	}
	return 0;
} 
2022/8/21 22:23
加载中...