QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#795239#9726. AUSNlll#RE 0ms3636kbC++201005b2024-11-30 18:54:002024-11-30 18:54:00

Judging History

你现在查看的是最新测评结果

  • [2024-11-30 18:54:00]
  • 评测
  • 测评结果:RE
  • 用时:0ms
  • 内存:3636kb
  • [2024-11-30 18:54:00]
  • 提交

answer

#include<bits/stdc++.h>

using ll=long long;

void work()
{
    std::string A,B,C;
    std::cin>>A>>B>>C;
    std::array<int,26> fat;
    for(int i=0;i<25;i++) fat[i]=i;

    int n1=A.size(),n2=B.size(),n3=C.size();
    if(n1!=n2) {std::cout<<"NO\n";return;}

    auto find=[&](auto self,int x) ->int
    {
        if(fat[x]==x) return x;
        fat[x]=self(self,fat[x]);
        return fat[x];
    };

    for(int i=0;i<A.size();i++)
    {
        int f1=find(find,A[i]-'a'),f2=find(find,B[i]-'a');
        if(f1!=f2) 
        {
            fat[f1]=f2;
        }
    }
    if(n3!=n1) {std::cout<<"YES\n";return;}

    bool flag=false;
    for(int i=0;i<C.size();i++)
    {
        int f1=find(find,C[i]-'a'),f2=find(find,B[i]-'a');
        if(f1!=f2) flag=true;
    }
    std::cout<<(flag?"YES":"NO")<<'\n';
}

int main()
{
    std::cin.tie(0);
    std::cin.sync_with_stdio(0);
    int t=1;
    std::cin>>t;
    while(t--)
        work();
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3636kb

input:

4
abab
cdcd
abce
abab
cdcd
abcd
abab
cdcd
abc
x
yz
def

output:

YES
NO
YES
NO

result:

ok 4 lines

Test #2:

score: -100
Runtime Error

input:

10
ekkzjwextuoazxsosiiiditwrjiztfvxtzaztmdfhxroaqkjcdgsgiitkfglcrtgjquspjyjtodyhxetldbhvxampcvbinzgksxkunduhvbddakqswurshbnuazthfnxmsuyypznmxmatsnvpqovscnkkcjphtcmcsqteeikwggnugskjjwttvlrxmmrkyltxjhfiqicttcfumurdrmiqauruywgdomxxpbeunliyvsutrneexoyckjflhnmmaaovxubnptlemptxbhrflbnfcowktydgbugdxvkvegza...

output:


result: