#17 WA求助!!
查看原帖
#17 WA求助!!
493937
Defy_HeavenS楼主2023/9/17 09:46
#include<bits/stdc++.h>
using namespace std;
int n,t1[15],t2[15],t3[15],ans=(1<<30)-1+(1<<30);
string s1,s2,s3;
int main(){
	cin>>n>>s1>>s2>>s3;
	for(int i=0;i<n;i++){
		t1[s1[i]-'0']++;
		t2[s2[i]-'0']++;
		t3[s3[i]-'0']++;
	}
	int v=0;
	for(int i=0;i<=9;i++){
		if(t1[i]&&t2[i]&&t3[i]){
			v=1;
			int a=-1,b=-1,c=-1;
			for(int j=0;j<n;j++){
				if(s1[j]==i+'0'&&a==-1){
					a=j;
				}
				if(s2[j]==i+'0'&&b==-1){
					b=j;
				}
				if(s3[j]==i+'0'&&c==-1){
					c=j;
				}
			}
			if(a!=b&&b!=c){
				ans=min(ans,max(a,max(b,c)));
			}else if(a==b&&b==c){
				string sa=s1+s1+s1,sb=s2+s2+s2,sc=s3+s3+s3;
				for(int i=0;i<n*3;i++){
					for(int j=i+1;j<n*3;j++){
						for(int k=j+1;k<n*3;k++){
							if((sa[i]==sb[j])&&(sb[j]==sc[k])){
								ans=min(ans,max(i,max(j,k)));
							}
						}
					}
				}
				for(int j=0;j<n*3;j++){
					for(int i=j+1;i<n*3;i++){
						for(int k=i+1;k<n*3;k++){
							if((sa[i]==sb[j])&&(sb[j]==sc[k])){
								ans=min(ans,max(i,max(j,k)));
							}
						}
					}
				}
				for(int i=0;i<n*3;i++){
					for(int k=i+1;k<n*3;k++){
						for(int j=k+1;j<n*3;j++){
							if((sa[i]==sb[j])&&(sb[j]==sc[k])){
								ans=min(ans,max(i,max(j,k)));
							}
						}
					}
				}
				for(int j=0;j<n*3;j++){
					for(int k=j+1;k<n*3;k++){
						for(int i=k+1;i<n*3;i++){
							if((sa[i]==sb[j])&&(sb[j]==sc[k])){
								ans=min(ans,max(i,max(j,k)));
							}
						}
					}
				}
				for(int k=0;k<n*3;k++){
					for(int i=k+1;i<n*3;i++){
						for(int j=i+1;j<n*3;j++){
							if((sa[i]==sb[j])&&(sb[j]==sc[k])){
								ans=min(ans,max(i,max(j,k)));
							}
						}
					}
				}
				for(int k=0;k<n*3;k++){
					for(int j=k+1;j<n*3;j++){
						for(int i=j+1;i<n*3;i++){
							if((sa[i]==sb[j])&&(sb[j]==sc[k])){
								ans=min(ans,max(i,max(j,k)));
							}
						}
					}
				}
			}else if(a==b){
				int x=-1,y=-1;
				for(int j=0;j<n;j++){
					if(a!=j&&s1[j]==i+'0'&&x==-1){
						x=j;
					}
					if(b!=j&&s2[j]==i+'0'&&y==-1){
						y=j;
					}
				}
				if(x<y){
					ans=min(ans,max(x,max(b,c)));
				}else{
					
					ans=min(ans,max(a,max(y,c)));
				}
			}else if(b==c){
				
				int x=-1,y=-1;
				for(int j=0;j<n;j++){
					if(c!=j&&s3[j]==i+'0'&&x==-1){
						x=j;
					}
					if(b!=j&&s2[j]==i+'0'&&y==-1){
						y=j;
					}
				}
				if(x<y){
					ans=min(ans,max(x,max(b,a)));
				}else{
					
					ans=min(ans,max(a,max(y,c)));
				}
			}else{
				
				int x=-1,y=-1;
				for(int j=0;j<n;j++){
					if(c!=j&&s3[j]==i+'0'&&x==-1){
						x=j;
					}
					if(a!=j&&s1[j]==i+'0'&&y==-1){
						y=j;
					}
				}
				if(x<y){
					ans=min(ans,max(x,max(b,a)));
				}else{
					
					ans=min(ans,max(b,max(y,c)));
				}
			}
		}
	}
	if(!v){
		cout<<-1;
		return 0;
	}
	cout<<ans;
	return 0;
}
2023/9/17 09:46
加载中...