Submission #4919623
Source Code Expand
#include <iostream> #include <vector> using namespace std; class UnionFind { private: int numberOfNodes; //parent:0-indexed //rank: vector<int> par, rank; public: UnionFind(int n) { numberOfNodes = n; par.resize(n); rank.resize(n); for (int i = 0; i < n; i++) { par[i] = i; rank[i] = 1; } } //path-compress int find(int v) { if (v == par[v]) { return v; } return par[v] = find(par[v]); } bool same(int u, int v) { return find(u) == find(v); } void unite(int u, int v) { if (same(u, v)) return; u = find(u), v = find(v); if (rank[u] == rank[v]) { rank[v]++; } else if (rank[u] > rank[v]) { swap(u, v); } //rank[u] < rank[v] par[u] = v; } }; int main() { int n, q; cin >> n >> q; UnionFind uf(n); while(q--) { int p, a, b; cin >> p >> a >> b; if (p) { cout << (uf.same(a, b) ? "Yes" : "No") << endl; } else { uf.unite(a, b); } } return 0; }
Submission Info
Submission Time | |
---|---|
Task | B - Union Find |
User | sifi_border |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 1029 Byte |
Status | AC |
Exec Time | 469 ms |
Memory | 1664 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 100 / 100 | ||||
Status |
|
|
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 | 266 ms | 640 KB |
subtask_01_02.txt | AC | 2 ms | 1024 KB |
subtask_01_03.txt | AC | 414 ms | 1024 KB |
subtask_01_04.txt | AC | 454 ms | 1664 KB |
subtask_01_05.txt | AC | 24 ms | 256 KB |
subtask_01_06.txt | AC | 26 ms | 1024 KB |
subtask_01_07.txt | AC | 421 ms | 768 KB |
subtask_01_08.txt | AC | 455 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 | 408 ms | 896 KB |
subtask_01_12.txt | AC | 469 ms | 1664 KB |
subtask_01_13.txt | AC | 351 ms | 768 KB |
subtask_01_14.txt | AC | 3 ms | 1024 KB |
subtask_01_15.txt | AC | 417 ms | 768 KB |
subtask_01_16.txt | AC | 452 ms | 1664 KB |
subtask_01_17.txt | AC | 304 ms | 1408 KB |
subtask_01_18.txt | AC | 319 ms | 1408 KB |