rt,求调
#include <bits/stdc++.h>
using namespace std;
int n,s1[109],s2[109],s3[109];
vector<int>to1[10],to2[10],to3[10];
int main(){
cin>>n;
for (int i=1;i<=n;i++){scanf("%1d",&s1[i]);to1[s1[i]].push_back(i);}
for (int i=1;i<=n;i++){scanf("%1d",&s2[i]);to2[s2[i]].push_back(i);}
for (int i=1;i<=n;i++){scanf("%1d",&s3[i]);to3[s3[i]].push_back(i);}
int t1=INT_MAX,t2=INT_MAX,t3=INT_MAX,mn=INT_MAX;
for (int i=0;i<=9;i++){
//cout<<to1[i].size()<<" "<<to2[i].size()<<" "<<to3[i].size()<<endl;
if (to1[i].size()!=0&&to2[i].size()!=0&&to3[i].size()!=0){
t1=to1[i][0];
int s=0,ad=0;
while (to2[i][s]+ad==t1){
s++;
if (s==to2[i].size()){
s=0;
ad+=n;
}
}
t2=to2[i][s]+ad;
ad=0;s=0;
while (to3[i][s]+ad==t1||to3[i][s]+ad==t2){
s++;
if (s==to3[i].size()){
s=0;
ad+=n;
}
}
t3=to3[i][s]+ad;
//cout<<i<<" "<<t1<<" "<<t2<<" "<<t3<<endl;
mn=min(mn,max(t1,max(t2,t3))-1);
}
}
if (mn==INT_MAX)mn=-1;
cout<<mn;
}
WA5个点