Submission #4084305


Source Code Expand

#include <iostream>
#include <cstdio>
#include <cmath>
#include <vector>

using namespace std;

struct unionfind
{
	//rankのオーバーフローに注意
	vector<int> par, rank;
	unionfind(int n)
	{
		par.resize(n);
		rank.resize(n);
		for (int i = 0; i < n; i++)
		{
			par[i] = i;
			rank[i] = 1;
		}
	}

	bool same(int u, int v)
	{
		return root(u) == root(v);
	}

	void unite(int u, int v)
	{
		u = root(u), v = root(v);
		if (u == v) return;
		if (rank[u] > rank[v]) swap(u, v);
		par[u] = v;
		rank[v] += rank[u];
	}

	int root(int v)
	{
		if (par[v] == v) return v;
		return par[v] = root(par[v]);
	}
};

//verified at https://atc001.contest.atcoder.jp/tasks/unionfind_a

void solve()
{
	int N, Q;
	cin >> N >> Q;
	unionfind uf(N);
	while (Q--)
	{
		int p, a, b;
		scanf("%d%d%d", &p, &a, &b);
		if (p)
		{
			printf("%s\n", uf.same(a, b) ? "Yes" : "No");
		}
		else
		{
			uf.unite(a, b);
		}
	}
}

int main(void)
{
	solve();
	//cout << "yui(*-v・)yui" << endl;
	return 0;
}

Submission Info

Submission Time
Task B - Union Find
User sifi_border
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1057 Byte
Status AC
Exec Time 50 ms
Memory 1664 KB

Compile Error

./Main.cpp: In function ‘void solve()’:
./Main.cpp:54:30: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d%d%d", &p, &a, &b);
                              ^

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 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 50 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 768 KB
subtask_01_08.txt AC 50 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 768 KB
subtask_01_16.txt AC 50 ms 1664 KB
subtask_01_17.txt AC 49 ms 1408 KB
subtask_01_18.txt AC 49 ms 1408 KB