Submission #2171205


Source Code Expand

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <queue>
#include <set>
#include <map>
#include <string.h>
#include <cmath>

using namespace std;
typedef long long i64;
typedef long double ld;
typedef pair<i64,i64> P;
#define rep(i,s,e) for(int (i) = (s);(i) <= (e);++(i))

#include <vector>
using namespace std;


struct UnionFind
{
	vector<int> par_;
	vector<int> rank_;

	void init(int size)
	{
		par_.resize(size, 0);
		rank_.resize(size, 0);
		for (int i = 0; i < size; i++)
		{
			par_[i] = i;
			rank_[i] = 0;
		}
	}
	int root(int x)
	{
		return par_[x] == x ? x : par_[x] = root(par_[x]);
	}

	bool unite(int x, int y)
	{
		x = root(x);
		y = root(y);
		if (x == y)
			return true;

		if (rank_[x] < rank_[y])
		{
			par_[x] = y;
		}
		else
		{
			par_[y] = x;
			if (rank_[x] == rank_[y])
				rank_[x]++;
		}
		return false;
	}
	bool same(int x, int y)
	{
		return root(x) == root(y);
	}
};

int main()
{
	int n,q;
	cin >> n >> q;
	UnionFind uf;
	uf.init(n * 2 + 5);

	for(int i = 0;i < q;i++)
	{
		int w,x,y,z;
		cin >> w >> x >> y >> z;
		if(w == 1)
		{
			if(z % 2 == 0)
			{
				uf.unite(x , y);
				uf.unite(x + n , y + n);
			}
			else
			{
				uf.unite(x + n , y);
				uf.unite(x , y + n);
			}
		}
		else
		{
			if(uf.same(x,y))
			{
				cout << "YES" << endl;
			}
			else{
				cout << "NO" << endl;
			}
		}
	}
}

Submission Info

Submission Time
Task D - 偶数メートル
User niuez
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1470 Byte
Status AC
Exec Time 189 ms
Memory 2048 KB

Judge Result

Set Name Sample Subtask1 Subtask2
Score / Max Score 0 / 0 30 / 30 70 / 70
Status
AC × 3
AC × 32
AC × 62
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
Subtask1 sample_01.txt, sample_02.txt, sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask1_26.txt, subtask1_27.txt, subtask1_28.txt, subtask1_29.txt
Subtask2 sample_01.txt, sample_02.txt, sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask1_26.txt, subtask1_27.txt, subtask1_28.txt, subtask1_29.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt, subtask2_14.txt, subtask2_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt, subtask2_20.txt, subtask2_21.txt, subtask2_22.txt, subtask2_23.txt, subtask2_24.txt, subtask2_25.txt, subtask2_26.txt, subtask2_27.txt, subtask2_28.txt, subtask2_29.txt, subtask2_30.txt
Case Name Status Exec Time Memory
sample_01.txt AC 1 ms 256 KB
sample_02.txt AC 1 ms 256 KB
sample_03.txt AC 1 ms 256 KB
subtask1_01.txt AC 4 ms 256 KB
subtask1_02.txt AC 4 ms 256 KB
subtask1_03.txt AC 6 ms 256 KB
subtask1_04.txt AC 4 ms 256 KB
subtask1_05.txt AC 4 ms 256 KB
subtask1_06.txt AC 4 ms 256 KB
subtask1_07.txt AC 4 ms 256 KB
subtask1_08.txt AC 5 ms 256 KB
subtask1_09.txt AC 6 ms 256 KB
subtask1_10.txt AC 6 ms 256 KB
subtask1_11.txt AC 7 ms 256 KB
subtask1_12.txt AC 6 ms 256 KB
subtask1_13.txt AC 6 ms 256 KB
subtask1_14.txt AC 6 ms 256 KB
subtask1_15.txt AC 6 ms 256 KB
subtask1_16.txt AC 6 ms 256 KB
subtask1_17.txt AC 6 ms 256 KB
subtask1_18.txt AC 6 ms 256 KB
subtask1_19.txt AC 6 ms 256 KB
subtask1_20.txt AC 6 ms 256 KB
subtask1_21.txt AC 6 ms 256 KB
subtask1_22.txt AC 6 ms 256 KB
subtask1_23.txt AC 6 ms 256 KB
subtask1_24.txt AC 6 ms 256 KB
subtask1_25.txt AC 6 ms 256 KB
subtask1_26.txt AC 6 ms 256 KB
subtask1_27.txt AC 6 ms 256 KB
subtask1_28.txt AC 6 ms 256 KB
subtask1_29.txt AC 6 ms 256 KB
subtask2_01.txt AC 62 ms 640 KB
subtask2_02.txt AC 155 ms 1792 KB
subtask2_03.txt AC 11 ms 768 KB
subtask2_04.txt AC 148 ms 1280 KB
subtask2_05.txt AC 66 ms 1792 KB
subtask2_06.txt AC 71 ms 1408 KB
subtask2_07.txt AC 142 ms 1920 KB
subtask2_08.txt AC 160 ms 1536 KB
subtask2_09.txt AC 98 ms 896 KB
subtask2_10.txt AC 182 ms 2048 KB
subtask2_11.txt AC 184 ms 1920 KB
subtask2_12.txt AC 183 ms 1920 KB
subtask2_13.txt AC 182 ms 1920 KB
subtask2_14.txt AC 182 ms 1920 KB
subtask2_15.txt AC 184 ms 1920 KB
subtask2_16.txt AC 182 ms 1920 KB
subtask2_17.txt AC 184 ms 1920 KB
subtask2_18.txt AC 181 ms 1920 KB
subtask2_19.txt AC 183 ms 1920 KB
subtask2_20.txt AC 189 ms 1920 KB
subtask2_21.txt AC 109 ms 1792 KB
subtask2_22.txt AC 108 ms 1792 KB
subtask2_23.txt AC 109 ms 1792 KB
subtask2_24.txt AC 109 ms 1792 KB
subtask2_25.txt AC 108 ms 1792 KB
subtask2_26.txt AC 108 ms 1792 KB
subtask2_27.txt AC 110 ms 1792 KB
subtask2_28.txt AC 108 ms 1792 KB
subtask2_29.txt AC 108 ms 1792 KB
subtask2_30.txt AC 173 ms 1152 KB