关于ABC-C题
  • 板块学术版
  • 楼主Rockey0515
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/9/16 22:14
  • 上次更新2023/11/2 19:56:51
查看原帖
关于ABC-C题
735470
Rockey0515楼主2023/9/16 22:14

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个点

2023/9/16 22:14
加载中...