Submission #420553
Source Code Expand
#include <iostream> #include <algorithm> #include <cstdio> #include <cstdlib> #include <sstream> #include <cstring> #include <string> #include <vector> #include <set> #include <map> #include <queue> #include <numeric> #include <functional> #include <cmath> #define rep2(x,fr,to) for(int (x)=(fr);(x)<(to);(x)++) #define rep(x,to) for(int (x)=0;(x)<(to);(x)++) #define repr(x,fr,to) for(int (x)=(fr);(x)>=(to);(x)--) #define all(c) (c).begin(),(c).end() #define sz(v) (int)(v).size() using namespace std; typedef long long ll; typedef vector<int> VI; typedef pair<int,int> pii; struct UF { vector<int> par, rank; //root, tree UF() {} UF(int n){ init(n); } void init(int n) { par.assign(n+4,0); rank.assign(n+4,0); for(int i = 0; i<n; i++) par[i] = i; } int find(int x){if(par[x] == x) return x; else return par[x] =find(par[x]);} void unite(int x, int y) { //unite, (add) x = find(x); y = find(y); if(x == y) return; if(rank[x] < rank[y]) par[x] = y; else{ par[y] = x; if(rank[x] == rank[y]) rank[x]++; } } bool same(int x, int y) { return find(x) == find(y); } }; int main() { cin.tie(0); ios_base::sync_with_stdio(false); int n, q; cin >>n >>q; UF ufa(n); while(q--){ int p,a,b; cin >>p >>a >>b; if(p==0){ ufa.unite(a,b); }else{ cout <<(ufa.same(a,b)? "Yes": "No")<<endl; } } return 0; }
Submission Info
Submission Time | |
---|---|
Task | B - Union Find |
User | damekamo |
Language | C++11 (GCC 4.9.2) |
Score | 100 |
Code Size | 1400 Byte |
Status | AC |
Exec Time | 544 ms |
Memory | 1700 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 | 26 ms | 836 KB |
subtask_01_01.txt | AC | 338 ms | 792 KB |
subtask_01_02.txt | AC | 25 ms | 1700 KB |
subtask_01_03.txt | AC | 529 ms | 800 KB |
subtask_01_04.txt | AC | 542 ms | 1692 KB |
subtask_01_05.txt | AC | 54 ms | 800 KB |
subtask_01_06.txt | AC | 50 ms | 1576 KB |
subtask_01_07.txt | AC | 538 ms | 808 KB |
subtask_01_08.txt | AC | 535 ms | 1692 KB |
subtask_01_09.txt | AC | 24 ms | 932 KB |
subtask_01_10.txt | AC | 26 ms | 1568 KB |
subtask_01_11.txt | AC | 518 ms | 800 KB |
subtask_01_12.txt | AC | 544 ms | 1568 KB |
subtask_01_13.txt | AC | 427 ms | 796 KB |
subtask_01_14.txt | AC | 28 ms | 1500 KB |
subtask_01_15.txt | AC | 518 ms | 804 KB |
subtask_01_16.txt | AC | 536 ms | 1568 KB |
subtask_01_17.txt | AC | 315 ms | 1692 KB |
subtask_01_18.txt | AC | 335 ms | 1568 KB |