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
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 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