Submission #7570184


Source Code Expand

#include <bits/stdc++.h>
using namespace std;
using i64 = int_fast64_t;
using ui64 = uint_fast64_t;
#define REP(i, n) for (i64 (i) = 0; (i) < (n); ++(i))
#define FOR(i, a, b) for (i64 (i) = (a); (i) < (b); ++(i))

struct abracadabra{
    abracadabra(){
        cin.tie(0); ios::sync_with_stdio(0);
        cout << fixed << setprecision(20);
    };
} ABRACADABRA;

struct UnionFind {
    vector<int> parent;
    int __size;
    UnionFind(int size_) : parent(size_, -1), __size(size_) {}
    bool unite(int x, int y) {
        if ((x = find(x)) != (y = find(y))) {
            if (parent[y] < parent[x]) swap(x, y);
            parent[x] += parent[y];
            parent[y] = x;
            __size--;
            return true;
        }
        return false;
    }
    bool same(int x, int y){return find(x) == find(y); }
    int find(int x) { return parent[x] < 0 ? x : parent[x] = find(parent[x]); }
    int size(int x) { return -parent[find(x)]; }
    int size() { return __size; }
};

int N, Q;

signed main() {

    cin >> N >> Q;

    UnionFind uf(N);

    while (Q--) {
        int P, A, B;
        cin >> P >> A >> B;
        if (P == 0) uf.unite(A, B);
        else cout << (uf.same(A, B) ? "Yes" : "No") << endl;
    }

}

Submission Info

Submission Time
Task B - Union Find
User morio__
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1277 Byte
Status AC
Exec Time 358 ms
Memory 1280 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 213 ms 640 KB
subtask_01_02.txt AC 1 ms 640 KB
subtask_01_03.txt AC 344 ms 1024 KB
subtask_01_04.txt AC 351 ms 1280 KB
subtask_01_05.txt AC 19 ms 256 KB
subtask_01_06.txt AC 19 ms 640 KB
subtask_01_07.txt AC 358 ms 896 KB
subtask_01_08.txt AC 355 ms 1280 KB
subtask_01_09.txt AC 1 ms 256 KB
subtask_01_10.txt AC 1 ms 640 KB
subtask_01_11.txt AC 349 ms 896 KB
subtask_01_12.txt AC 356 ms 1280 KB
subtask_01_13.txt AC 286 ms 768 KB
subtask_01_14.txt AC 2 ms 640 KB
subtask_01_15.txt AC 344 ms 896 KB
subtask_01_16.txt AC 347 ms 1280 KB
subtask_01_17.txt AC 207 ms 1024 KB
subtask_01_18.txt AC 204 ms 1024 KB