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