Submission #7141744
Source Code Expand
#include <iostream> #include <vector> struct Union_Find { std::vector<int> par; std::vector<int> rank; //初期化 void init( int n ) { par.resize( n ); rank.resize( n ); for ( int i = 0; i < n; ++i ) { par[ i ] = i; rank[ i ] = 0; } } //木の根を探す int find( int s ) { if ( par[ s ] == s ) { return s; } return par[ s ] = find( par[ s ] ); } //結合 void unite( int x, int y ) { int a = find( x ), b = find( y ); if ( a == b ) { return; } if ( rank[ a ] < rank[ b ] ) { par[ a ] = b; } else { par[ a ] = b; if ( rank[ a ] == rank[ b ] ) { ++rank[ b ]; } } } //二つの数の根が同じかどうか bool same( int x, int y ) { return find( x ) == find( y ); } //サイズを返す unsigned int size() { return par.size(); } }; using namespace std; int main(){ ios::sync_with_stdio(false); cin.tie(0); int n, q; cin >> n >> q; Union_Find uf; uf.init(n); while(q--){ int p, a, b; cin >> p >> a >> b; if(p){ if(uf.same(a, b)){ cout << "Yes\n"; }else{ cout << "No\n"; } }else{ uf.unite(a, b); } } }
Submission Info
Submission Time | |
---|---|
Task | B - Union Find |
User | stone725 |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 1567 Byte |
Status | AC |
Exec Time | 54 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 | 29 ms | 640 KB |
subtask_01_02.txt | AC | 2 ms | 1024 KB |
subtask_01_03.txt | AC | 41 ms | 1024 KB |
subtask_01_04.txt | AC | 49 ms | 1664 KB |
subtask_01_05.txt | AC | 4 ms | 256 KB |
subtask_01_06.txt | AC | 5 ms | 1024 KB |
subtask_01_07.txt | AC | 45 ms | 896 KB |
subtask_01_08.txt | AC | 49 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 | 41 ms | 896 KB |
subtask_01_12.txt | AC | 49 ms | 1664 KB |
subtask_01_13.txt | AC | 37 ms | 768 KB |
subtask_01_14.txt | AC | 2 ms | 1024 KB |
subtask_01_15.txt | AC | 42 ms | 896 KB |
subtask_01_16.txt | AC | 49 ms | 1664 KB |
subtask_01_17.txt | AC | 54 ms | 1408 KB |
subtask_01_18.txt | AC | 48 ms | 1408 KB |