Submission #1069311


Source Code Expand

#include <bits/stdc++.h>
using namespace std;

const int N = 2e5+10;
int fa1[N],fa2[N];
int findroot1(int u)
{
    return fa1[u]==u?u:fa1[u]=findroot1(fa1[u]);
}
int findroot2(int u)
{
    return fa2[u]==u?u:fa2[u]=findroot2(fa2[u]);
}
set<int>s1[N];
set<int>s2[N];
int ans[N];
bool vis[N];
int main()
{
    int n,k,l;
    int u,v;
    // freopen("in.txt","r",stdin);
    memset(vis,false,sizeof(vis));
    scanf("%d%d%d",&n,&k,&l);
    for(int i=1;i<=n;i++) fa1[i]=fa2[i]=i;
    for(int i=1;i<=k;i++)
    {
        scanf("%d%d",&u,&v);
        int uu=findroot1(u);
        int vv=findroot1(v);
        if(uu==vv) continue;
        else fa1[vv]=uu;
    }
    for(int i=1;i<=l;i++)
    {
        scanf("%d%d",&u,&v);
        int uu=findroot2(u);
        int vv=findroot2(v);
        if(uu==vv) continue;
        else fa2[vv]=uu;
    }
    for(int i=1;i<=n;i++)
    {
        u=findroot1(i);
        v=findroot2(i);
        s1[u].insert(i);
        s2[v].insert(i);
    }
    for(int i=1;i<=n;i++)
    {
        if(vis[i]) continue;
        u=findroot1(i);
        v=findroot2(i);
        if(!s1[u].empty()&&!s2[v].empty())
        {
            vector<int>a;
            for(auto it:s2[v])
            {
                if(findroot1(it)==u) a.push_back(it);
            }
            int sz=a.size();
            for(auto it:a)
            {
                ans[it]=sz;
                vis[it]=true;
                s1[u].erase(it);
                s2[v].erase(it);
            }
        }
    }
    for(int i=1;i<=n;i++)
    {
        printf("%d",ans[i]);
        if(i!=n) printf(" ");
        else printf("\n");
    }
    return 0;
}

Submission Info

Submission Time
Task D - Connectivity
User vjudge1
Language C++14 (GCC 5.4.1)
Score 0
Code Size 1635 Byte
Status TLE
Exec Time 2106 ms
Memory 40192 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:24:29: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d%d",&n,&k,&l);
                             ^
./Main.cpp:28:28: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d%d",&u,&v);
                            ^
./Main.cpp:36:28: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d%d",&u,&v);
                            ^

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 400
Status
AC × 3
AC × 12
TLE × 6
Set Name Test Cases
Sample subtask0_0.txt, subtask0_1.txt, subtask0_2.txt
All subtask0_0.txt, subtask0_1.txt, subtask0_2.txt, subtask1_0.txt, subtask1_1.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_2.txt, subtask1_3.txt, subtask1_4.txt, subtask1_5.txt, subtask1_6.txt, subtask1_7.txt, subtask1_8.txt, subtask1_9.txt
Case Name Status Exec Time Memory
subtask0_0.txt AC 24 ms 19200 KB
subtask0_1.txt AC 24 ms 19200 KB
subtask0_2.txt AC 24 ms 19200 KB
subtask1_0.txt AC 53 ms 19456 KB
subtask1_1.txt AC 139 ms 39936 KB
subtask1_10.txt AC 54 ms 19456 KB
subtask1_11.txt AC 124 ms 37504 KB
subtask1_12.txt TLE 2106 ms 38400 KB
subtask1_13.txt TLE 2106 ms 39680 KB
subtask1_14.txt AC 138 ms 35840 KB
subtask1_2.txt TLE 2105 ms 34432 KB
subtask1_3.txt TLE 2106 ms 39808 KB
subtask1_4.txt AC 139 ms 36608 KB
subtask1_5.txt AC 56 ms 19456 KB
subtask1_6.txt AC 118 ms 36480 KB
subtask1_7.txt TLE 2106 ms 39808 KB
subtask1_8.txt TLE 2106 ms 40192 KB
subtask1_9.txt AC 128 ms 33152 KB