75pts求调
查看原帖
75pts求调
696996
restart_to_revive楼主2024/10/20 23:08
#include<bits/stdc++.h>
using namespace std;
int main(){
    long long t;
    cin>>t;
    for(int f=0;f<t;f++){
        int n;
        cin>>n;
        string a,b;
        cin>>a>>b;
        bool flag=false;
        long long anum=0,bnum=0,cnum=0;
        for(int i=0;i<n;i++){
            if(a[i]=='P') anum++;
            else if(a[i]=='V') bnum++;
            else cnum++;
            if(anum==bnum and bnum==cnum and anum!=0){
                flag=true;
                break;
            }
            if(b[i]=='P') anum++;
            else if(b[i]=='V') bnum++;
            else cnum++;
            if(anum==bnum and bnum==cnum and anum!=0){
                flag=false;
                break;
            }
        }
        if(flag==true){
            cout<<0<<'\n';
            continue;
        }
        flag=false;
        anum=0,bnum=0,cnum=0;
		long long pos=-1;
        for(int i=0;i<n;i++){
            if(a[i]=='P') anum++;
            else if(a[i]=='V') bnum++;
            else cnum++;
            int p=anum,q=bnum,r=cnum;
            if(p>q)swap(p,q);
            if(q>r)swap(q,r);
            if(p>r)swap(p,r);
            if(p>q)swap(p,q);
            if(q>r)swap(q,r);
            if(p>r)swap(p,r);
            if(q-p==1 and r-q==1 and r-p==2){
				if(pos!=-1 and i-pos>=3) break;
                cout<<1<<'\n';
                flag=true;
                break;
            }
            if(b[i]=='P') anum++;
            else if(b[i]=='V') bnum++;
            else cnum++;
			if(anum==bnum and bnum==cnum and anum!=0){
                flag=false;
				if(pos==-1)pos=i;
                //break;
            }
        }
        if(flag==false){
            cout<<2<<'\n';
        }
    }
    return 0;
}

wa on #26

2024/10/20 23:08
加载中...