Submission #8246306


Source Code Expand

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

struct UnionFind{
private:
    vector<int> par, rank;
public:
    inline UnionFind(size_t sz){ init(sz); }
    inline void init(size_t sz){
        par.resize(sz, -1);
        rank.resize(sz, 0);
    }
    inline int find(int x){
        if(par[x] < 0)return x;
        else return par[x] = find(par[x]);
    }
    inline int size(int x){
        return -par[find(x)];
    }
    inline int size(){
        return int(par.size());
    }
    inline bool unite(int x, int y){
        x = find(x);
        y = find(y);
        if(x == y)return false;
        if(rank[x] < rank[y])swap(x, y);
        if(rank[x] == rank[y])rank[x]++;
        par[x] += par[y];
        par[y] = x;
        return true;
    }
    inline bool same(int x, int y){
        return find(x) == find(y);
    }
};

int main(){
    
    int N, Q;
    cin >> N >> Q;
    UnionFind uni(N);
    for(int query = 0; query < Q; ++query){
        int p, a, b;
        cin >> p >> a >> b;
        if(p == 0)uni.unite(a, b);
        else cout << (uni.same(a, b) ? "Yes\n" : "No\n");
    }

}

Submission Info

Submission Time
Task B - Union Find
User KoD
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1145 Byte
Status AC
Exec Time 473 ms
Memory 1664 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 1
AC × 19
Set Name Test Cases
Sample 00_sample_01.txt
All 00_sample_01.txt, subtask_01_01.txt, subtask_01_02.txt, subtask_01_03.txt, subtask_01_04.txt, subtask_01_05.txt, subtask_01_06.txt, subtask_01_07.txt, subtask_01_08.txt, subtask_01_09.txt, subtask_01_10.txt, subtask_01_11.txt, subtask_01_12.txt, subtask_01_13.txt, subtask_01_14.txt, subtask_01_15.txt, subtask_01_16.txt, subtask_01_17.txt, subtask_01_18.txt
Case Name Status Exec Time Memory
00_sample_01.txt AC 1 ms 256 KB
subtask_01_01.txt AC 273 ms 640 KB
subtask_01_02.txt AC 2 ms 1024 KB
subtask_01_03.txt AC 409 ms 1024 KB
subtask_01_04.txt AC 459 ms 1664 KB
subtask_01_05.txt AC 25 ms 256 KB
subtask_01_06.txt AC 26 ms 1024 KB
subtask_01_07.txt AC 439 ms 768 KB
subtask_01_08.txt AC 454 ms 1664 KB
subtask_01_09.txt AC 1 ms 256 KB
subtask_01_10.txt AC 2 ms 1024 KB
subtask_01_11.txt AC 413 ms 896 KB
subtask_01_12.txt AC 473 ms 1664 KB
subtask_01_13.txt AC 349 ms 768 KB
subtask_01_14.txt AC 3 ms 1024 KB
subtask_01_15.txt AC 415 ms 768 KB
subtask_01_16.txt AC 455 ms 1664 KB
subtask_01_17.txt AC 305 ms 1408 KB
subtask_01_18.txt AC 302 ms 1408 KB