Submission #991898
Source Code Expand
#include <algorithm> #include <bitset> #include <cassert> #include <cctype> #include <cmath> #include <cstdio> #include <cstdlib> #include <cstring> #include <ctime> #include <deque> #include <functional> #include <iomanip> #include <iostream> #include <list> #include <map> #include <numeric> #include <queue> #include <set> #include <sstream> #include <stack> #include <string> #include <utility> #include <vector> #define REP(i,s,n) for(int i=(int)(s);i<(int)(n);i++) using namespace std; typedef long long int ll; typedef vector<int> VI; typedef vector<ll> VL; typedef pair<int, int> PI; const ll mod = 1e9 + 7; /* * Union-Find tree * header requirement: vector */ class UnionFind { private: std::vector<int> disj; std::vector<int> rank; public: UnionFind(int n) : disj(n), rank(n) { for (int i = 0; i < n; ++i) { disj[i] = i; rank[i] = 0; } } int root(int x) { if (disj[x] == x) { return x; } return disj[x] = root(disj[x]); } void unite(int x, int y) { x = root(x); y = root(y); if (x == y) { return; } if (rank[x] < rank[y]) { disj[x] = y; } else { disj[y] = x; if (rank[x] == rank[y]) { ++rank[x]; } } } bool is_same_set(int x, int y) { return root(x) == root(y); } }; const int N = 100100; VI avail[N]; int main(void){ int n, m; cin >> n >> m; UnionFind uf(n); VI man(m, -1); REP(i, 0, n) { int ki; cin >> ki; REP(j, 0, ki) { int l; cin >> l; l--; avail[i].push_back(l); if (man[l] == -1) { man[l] = i; } else { uf.unite(man[l], i); } } } VI root(n, 0); int numroot = 0; REP(i, 0, n) { int r = uf.root(i); if (root[r] == 0) { numroot++; root[r] = 1; } } cout << (numroot >= 2 ? "NO" : "YES") << endl; }
Submission Info
Submission Time | |
---|---|
Task | C - Interpretation |
User | kobae964 |
Language | C++14 (GCC 5.4.1) |
Score | 400 |
Code Size | 1848 Byte |
Status | AC |
Exec Time | 58 ms |
Memory | 7296 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 |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
01-01.txt | AC | 4 ms | 2560 KB |
01-02.txt | AC | 5 ms | 2560 KB |
01-03.txt | AC | 5 ms | 2688 KB |
01-04.txt | AC | 5 ms | 2688 KB |
01-05.txt | AC | 5 ms | 2688 KB |
01-06.txt | AC | 5 ms | 2560 KB |
01-07.txt | AC | 5 ms | 2560 KB |
01-08.txt | AC | 5 ms | 2560 KB |
01-09.txt | AC | 5 ms | 2560 KB |
01-10.txt | AC | 5 ms | 2688 KB |
02-01.txt | AC | 37 ms | 3712 KB |
02-02.txt | AC | 50 ms | 6784 KB |
02-03.txt | AC | 38 ms | 3584 KB |
02-04.txt | AC | 51 ms | 5376 KB |
02-05.txt | AC | 52 ms | 6016 KB |
02-06.txt | AC | 51 ms | 5376 KB |
02-07.txt | AC | 54 ms | 6528 KB |
02-08.txt | AC | 43 ms | 6912 KB |
02-09.txt | AC | 58 ms | 7296 KB |
02-10.txt | AC | 45 ms | 5120 KB |
02-11.txt | AC | 45 ms | 5116 KB |
02-12.txt | AC | 43 ms | 5120 KB |
02-13.txt | AC | 43 ms | 5120 KB |
sample-01.txt | AC | 5 ms | 2560 KB |
sample-02.txt | AC | 5 ms | 2560 KB |