Submission #101816
Source Code Expand
#include <bits/stdc++.h> #define REP(i,n) for(int i=0; i<(int)(n); ++i) using namespace std; typedef long long ll; const int INF = 1000000000; const int MOD = 1000000007; const double EPS = 1e-8; typedef pair<int, int> P; struct UnionFind{ vector<int> data; UnionFind(int N) : data(N, -1){} int root(int x){ if(data[x] < 0) return x; return data[x] = root(data[x]); } bool uni(int x, int y){ x = root(x); y = root(y); if(x == y) return false; if(data[x] < data[y]) swap(x, y); data[x] += data[y]; data[y] = x; return true; } bool same(int x, int y){ return root(x) == root(y); } }; int main(){ int N, M, K; while(cin >> N >> M >> K){ vector<P> es(M); vector<bool> erased(M, false); REP(i, M){ cin >> es[i].first >> es[i].second; } vector<int> q(K); vector<int> v(K), w(K); REP(i, K){ cin >> q[i]; if(q[i] == 0){ cin >> v[i]; erased[ v[i] - 1 ] = true; }else{ cin >> v[i] >> w[i]; } } UnionFind uf(N); for(int i = 0; i < M; i++) if(not erased[i]) uf.uni(es[i].first - 1, es[i].second - 1); vector<int> res; for(int i = K - 1; i >= 0; i--){ if(q[i] == 0){ int e = v[i] - 1; uf.uni(es[e].first - 1, es[e].second - 1); }else{ res.push_back( uf.same(v[i] - 1, w[i] - 1) ); } } reverse(res.begin(), res.end()); for(auto ri : res){ puts( (ri == 0 ? "NO" : "YES") ); } } return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - Graph Destruction |
User | YellowYell |
Language | C++11 (GCC 4.8.1) |
Score | 100 |
Code Size | 1812 Byte |
Status | AC |
Exec Time | 241 ms |
Memory | 3744 KB |
Judge Result
Set Name | All | ||
---|---|---|---|
Score / Max Score | 100 / 100 | ||
Status |
|
Set Name | Test Cases |
---|---|
All | 1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 3, 30, 31, 32, 33, 34, 35, 36, 4, 5, 50, 6, 7, 8, 9 |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
1 | AC | 241 ms | 756 KB |
10 | AC | 23 ms | 932 KB |
11 | AC | 36 ms | 1064 KB |
12 | AC | 66 ms | 1580 KB |
13 | AC | 101 ms | 2340 KB |
14 | AC | 148 ms | 2856 KB |
15 | AC | 190 ms | 3348 KB |
16 | AC | 233 ms | 3744 KB |
17 | AC | 74 ms | 1700 KB |
18 | AC | 71 ms | 1572 KB |
19 | AC | 86 ms | 1836 KB |
2 | AC | 20 ms | 928 KB |
20 | AC | 115 ms | 2224 KB |
21 | AC | 85 ms | 1824 KB |
22 | AC | 115 ms | 2368 KB |
23 | AC | 86 ms | 1820 KB |
24 | AC | 64 ms | 1576 KB |
25 | AC | 70 ms | 1696 KB |
26 | AC | 173 ms | 2968 KB |
27 | AC | 61 ms | 1440 KB |
28 | AC | 67 ms | 1576 KB |
29 | AC | 131 ms | 2468 KB |
3 | AC | 20 ms | 928 KB |
30 | AC | 98 ms | 2092 KB |
31 | AC | 159 ms | 2840 KB |
32 | AC | 126 ms | 2468 KB |
33 | AC | 139 ms | 2588 KB |
34 | AC | 173 ms | 2968 KB |
35 | AC | 148 ms | 2720 KB |
36 | AC | 77 ms | 1708 KB |
4 | AC | 21 ms | 804 KB |
5 | AC | 21 ms | 808 KB |
50 | AC | 157 ms | 2860 KB |
6 | AC | 21 ms | 808 KB |
7 | AC | 24 ms | 772 KB |
8 | AC | 21 ms | 800 KB |
9 | AC | 22 ms | 808 KB |