Submission #5773879
Source Code Expand
#include <bits/stdc++.h> using namespace std; using ll = long long; #define FOR(i, m, n) for (int i = (m); i < (n); i++) #define REP(i, n) FOR(i, 0, n) #define ALL(c) (c).begin(), (c).end() template<class T> inline bool chmin(T& a, T b) {if (a > b) {a = b; return true;} return false;} template<class T> inline bool chmax(T& a, T b) {if (a < b) {a = b; return true;} return false;} const int MOD = 1000000007; class UnionFind { vector<int> parent; public: UnionFind(int size) { parent = vector<int>(size, -1); } int find(int x) { if (parent[x] < 0) { // parent itself return x; } else { return parent[x] = find(parent[x]); } } bool unite(int x, int y) { int rX, rY; if ((rX = find(x)) == (rY = find(y))) { // already united return false; } if (size(rX) < size(rY)) { int tmp = rX; rX = rY; rY = tmp; } parent[rX] += parent[rY]; parent[rY] = rX; return true; } int size(int x) { return -parent[find(x)]; } bool is_same(int x, int y) { return find(x) == find (y); } int component_count() { int c = 0; for (const int x : parent) { if (x < 0) { c++; } } return c; } }; int main() { int n, m; cin >> n >> m; UnionFind uf = UnionFind(n + m); int k, l; REP(i, n) { cin >> k; REP(j, k) { cin >> l; uf.unite(i, n + l - 1); } } REP(i, n - 1) { if (!uf.is_same(i, i + 1)) { cout << "NO" << endl; return 0; } } cout << "YES" << endl; }
Submission Info
Submission Time | |
---|---|
Task | C - Interpretation |
User | mdstoy |
Language | C++14 (GCC 5.4.1) |
Score | 400 |
Code Size | 2044 Byte |
Status | AC |
Exec Time | 47 ms |
Memory | 1024 KB |
Judge Result
Set Name | sample | dataset1 | dataset2 | ||||||
---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 200 / 200 | 200 / 200 | ||||||
Status |
|
|
|
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 | AC | 1 ms | 256 KB |
01-02.txt | AC | 1 ms | 256 KB |
01-03.txt | AC | 2 ms | 256 KB |
01-04.txt | AC | 1 ms | 256 KB |
01-05.txt | AC | 1 ms | 256 KB |
01-06.txt | AC | 1 ms | 256 KB |
01-07.txt | AC | 1 ms | 256 KB |
01-08.txt | AC | 1 ms | 256 KB |
01-09.txt | AC | 1 ms | 256 KB |
01-10.txt | AC | 2 ms | 256 KB |
02-01.txt | AC | 31 ms | 640 KB |
02-02.txt | AC | 38 ms | 640 KB |
02-03.txt | AC | 32 ms | 512 KB |
02-04.txt | AC | 40 ms | 896 KB |
02-05.txt | AC | 40 ms | 640 KB |
02-06.txt | AC | 40 ms | 896 KB |
02-07.txt | AC | 41 ms | 640 KB |
02-08.txt | AC | 32 ms | 640 KB |
02-09.txt | AC | 47 ms | 1024 KB |
02-10.txt | AC | 37 ms | 640 KB |
02-11.txt | AC | 37 ms | 640 KB |
02-12.txt | AC | 36 ms | 640 KB |
02-13.txt | AC | 36 ms | 640 KB |
sample-01.txt | AC | 1 ms | 256 KB |
sample-02.txt | AC | 1 ms | 256 KB |