Submission #423326


Source Code Expand

#include<iostream>
#include <vector>

namespace graph{
	using namespace std;

	class UnionFind{
	public:
		//nは要素数
		UnionFind(int n) :
			par(n),
			rank(n)
		{
			for (int i = 0; i < n; ++i){
				par[i] = i;
			}
		}

		//xとyの属する集合を結合
		void unite(int x, int y){
			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);
		}



	private:
		//親
		vector<int> par;

		//根の深さ
		vector<int> rank;

		//木の根を求める
		int find(int x){
			if (par[x] == x){
				return x;
			}
			else{
				return par[x] = find(par[x]);
			}
		}
	};
}

using namespace std;
int main(){
	int N,Q;
	cin >> N>>Q;
	graph::UnionFind uni(N);
	for (int i = 0; i < Q; i++){
		int p, x, y;
		cin >> p >> x >> y;
		if (p){
			if (uni.same(x, y))
				cout << "Yes" << endl;
			else
				cout << "No" << endl;
		}
		else 
			uni.unite(x, y);
	}
	return 0;
}

Submission Info

Submission Time
Task B - Union Find
User btk15049
Language C++11 (GCC 4.9.2)
Score 100
Code Size 1122 Byte
Status AC
Exec Time 988 ms
Memory 1696 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 27 ms 808 KB
subtask_01_01.txt AC 580 ms 800 KB
subtask_01_02.txt AC 28 ms 1692 KB
subtask_01_03.txt AC 766 ms 924 KB
subtask_01_04.txt AC 988 ms 1500 KB
subtask_01_05.txt AC 78 ms 924 KB
subtask_01_06.txt AC 78 ms 1564 KB
subtask_01_07.txt AC 863 ms 924 KB
subtask_01_08.txt AC 924 ms 1696 KB
subtask_01_09.txt AC 27 ms 800 KB
subtask_01_10.txt AC 29 ms 1568 KB
subtask_01_11.txt AC 772 ms 800 KB
subtask_01_12.txt AC 977 ms 1684 KB
subtask_01_13.txt AC 724 ms 800 KB
subtask_01_14.txt AC 32 ms 1692 KB
subtask_01_15.txt AC 843 ms 924 KB
subtask_01_16.txt AC 980 ms 1568 KB
subtask_01_17.txt AC 685 ms 1576 KB
subtask_01_18.txt AC 693 ms 1692 KB