Submission #7922934


Source Code Expand

Copy
#include <iostream>
#include <vector>

using namespace std;
struct UnionFind {
	vector<int> par;

	UnionFind(int N) : par(N) {
		for(int i = 0; i < N; i++) par[i] = i;
	}

	int root(int x) {
		if(par[x] == x) return x;
			//ここで併合処理も行なっている
		return par[x] = root(par[x]);
	}

	void unite(int x, int y) {
		int rx = root(x);
		int ry = root(y);
		if(rx == ry) return;
		par[rx] = ry;
	}

	bool same(int x, int y) {
		int rx = root(x);
		int ry = root(y);
		return rx == ry;
	}

};


int main() {
	int N;
	cin >> N;
	UnionFind a(N);
	int M;
	cin >> M;
	vector<vector<bool> > L(N, vector<bool>(M, false));

	for(int i = 0; i < N; i++) {
		int ki;
		cin >> ki;
		for(int j = 0; j < ki; j++) {
			int x;
			cin >> x;
			L[i][x - 1] = true;
		}
	}

	for(int l = 0; l < M; l++) {
		int first_hit = -1;
		for(int i = 0; i < N; i++) {
			if(L[i][l] == true) {
				if(first_hit == -1) first_hit = i;
				else a.unite(first_hit, i);
			}
		}
	}

	for(int i = 0; i < N; i++) {
		for(int j = i + 1; j < N; j++) {
			if(a.same(i, j) == false) {
				cout << "NO" << endl;
				return 0;
			}
		}
	}
	cout << "YES" << endl;
}

Submission Info

Submission Time
Task C - Interpretation
User ssssttttnnnn
Language C++14 (Clang 3.8.0)
Score 200
Code Size 1207 Byte
Status
Exec Time 2193 ms
Memory 1224832 KB

Judge Result

Set Name sample dataset1 dataset2
Score / Max Score 0 / 0 200 / 200 0 / 200
Status
Test Cases sample-01.txt, sample-02.txt sample-01.txt, sample-02.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt sample-01.txt, sample-02.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt, 02-10.txt, 02-11.txt, 02-12.txt, 02-13.txt, sample-01.txt, sample-02.txt
Set Name Test Cases
sample sample-01.txt, sample-02.txt
dataset1 sample-01.txt, sample-02.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt
dataset2 sample-01.txt, sample-02.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt, 02-10.txt, 02-11.txt, 02-12.txt, 02-13.txt, sample-01.txt, sample-02.txt
Case Name Status Exec Time Memory
01-01.txt 1 ms 256 KB
01-02.txt 2 ms 256 KB
01-03.txt 4 ms 384 KB
01-04.txt 7 ms 384 KB
01-05.txt 3 ms 256 KB
01-06.txt 5 ms 384 KB
01-07.txt 4 ms 256 KB
01-08.txt 3 ms 384 KB
01-09.txt 5 ms 384 KB
01-10.txt 9 ms 512 KB
02-01.txt 2107 ms 61440 KB
02-02.txt 437 ms 16512 KB
02-03.txt 2107 ms 61824 KB
02-04.txt 2153 ms 686080 KB
02-05.txt 2112 ms 101248 KB
02-06.txt 2149 ms 688128 KB
02-07.txt 2112 ms 113792 KB
02-08.txt 104 ms 7680 KB
02-09.txt 2193 ms 1224832 KB
02-10.txt 2133 ms 307840 KB
02-11.txt 2131 ms 307840 KB
02-12.txt 2130 ms 309888 KB
02-13.txt 2132 ms 307840 KB
sample-01.txt 1 ms 256 KB
sample-02.txt 1 ms 256 KB