Submission #3426571
Source Code Expand
#include <cmath> #include <iostream> #include <vector> #include <queue> #include <deque> #include <map> #include <set> #include <stack> #include <tuple> #include <bitset> #include <algorithm> #include <functional> #include <utility> #include <iomanip> #define int long long int #define rep(i, n) for(int i = 0; i < (n); ++i) using namespace std; typedef pair<int, int> P; const int INF = 1e15; const int MOD = 1e9+7; template <typename T> class union_find{ private: int n; vector<T> p, rank, time; int now; public: union_find(int n) : n(n), p(n+1, -1), rank(n+1), time(n+1, INF), now(0) {} int find(int v, int t){ if(time[v] > t){ return v; } return find(p[v], t); } int unite(int u, int v){ ++now; int u_root = find(u, now); int v_root = find(v, now); if(u_root == v_root){ return now; } if(rank[u_root] < rank[v_root]){ swap(u_root, v_root); } if(rank[u_root] == rank[v_root]){ rank[u]++; } p[v_root] = u_root; time[v] = now; return now; } }; signed main(){ int n, m; cin >> n >> m; union_find<int> uf(n); rep(i, m){ int a, b; cin >> a >> b; uf.unite(a, b); } int q; cin >> q; rep(i, q){ int x, y; cin >> x >> y; int lo = -1; int hi = m + 1; while(hi - lo > 1){ int mid = (lo + hi) / 2; int px = uf.find(x, mid); int py = uf.find(y, mid); if(px == py){ hi = mid; }else{ lo = mid; } } if(hi == m + 1){ cout << -1 << endl; }else{ cout << hi << endl; } } return 0; }
Submission Info
Submission Time | |
---|---|
Task | H - Union Sets |
User | amanuko |
Language | C++14 (Clang 3.8.0) |
Score | 0 |
Code Size | 2087 Byte |
Status | RE |
Exec Time | 587 ms |
Memory | 3200 KB |
Judge Result
Set Name | Sample | All | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 0 / 600 | ||||||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | sample_01.txt, sample_02.txt, sample_03.txt |
All | sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_1.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_2.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_1_26.txt, subtask_1_27.txt, subtask_1_28.txt, subtask_1_29.txt, subtask_1_3.txt, subtask_1_30.txt, subtask_1_31.txt, subtask_1_32.txt, subtask_1_33.txt, subtask_1_34.txt, subtask_1_35.txt, subtask_1_36.txt, subtask_1_37.txt, subtask_1_38.txt, subtask_1_39.txt, subtask_1_4.txt, subtask_1_40.txt, subtask_1_41.txt, subtask_1_42.txt, subtask_1_43.txt, subtask_1_44.txt, subtask_1_45.txt, subtask_1_46.txt, subtask_1_5.txt, subtask_1_6.txt, subtask_1_7.txt, subtask_1_8.txt, subtask_1_9.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 |
subtask_1_1.txt | AC | 1 ms | 256 KB |
subtask_1_10.txt | WA | 68 ms | 256 KB |
subtask_1_11.txt | RE | 122 ms | 256 KB |
subtask_1_12.txt | AC | 5 ms | 1408 KB |
subtask_1_13.txt | WA | 9 ms | 256 KB |
subtask_1_14.txt | AC | 2 ms | 256 KB |
subtask_1_15.txt | WA | 104 ms | 384 KB |
subtask_1_16.txt | WA | 10 ms | 256 KB |
subtask_1_17.txt | WA | 28 ms | 256 KB |
subtask_1_18.txt | WA | 2 ms | 256 KB |
subtask_1_19.txt | AC | 14 ms | 1152 KB |
subtask_1_2.txt | AC | 1 ms | 256 KB |
subtask_1_20.txt | WA | 2 ms | 256 KB |
subtask_1_21.txt | WA | 17 ms | 256 KB |
subtask_1_22.txt | AC | 3 ms | 896 KB |
subtask_1_23.txt | AC | 376 ms | 2944 KB |
subtask_1_24.txt | AC | 384 ms | 2944 KB |
subtask_1_25.txt | AC | 403 ms | 2944 KB |
subtask_1_26.txt | WA | 395 ms | 2944 KB |
subtask_1_27.txt | WA | 563 ms | 3200 KB |
subtask_1_28.txt | WA | 561 ms | 3200 KB |
subtask_1_29.txt | AC | 375 ms | 2944 KB |
subtask_1_3.txt | AC | 1 ms | 256 KB |
subtask_1_30.txt | AC | 379 ms | 2944 KB |
subtask_1_31.txt | AC | 390 ms | 2944 KB |
subtask_1_32.txt | WA | 401 ms | 2944 KB |
subtask_1_33.txt | WA | 576 ms | 3200 KB |
subtask_1_34.txt | WA | 560 ms | 3200 KB |
subtask_1_35.txt | AC | 383 ms | 2944 KB |
subtask_1_36.txt | AC | 390 ms | 2944 KB |
subtask_1_37.txt | AC | 399 ms | 2944 KB |
subtask_1_38.txt | AC | 419 ms | 2944 KB |
subtask_1_39.txt | AC | 531 ms | 3200 KB |
subtask_1_4.txt | AC | 17 ms | 1920 KB |
subtask_1_40.txt | AC | 533 ms | 3200 KB |
subtask_1_41.txt | AC | 323 ms | 512 KB |
subtask_1_42.txt | AC | 331 ms | 512 KB |
subtask_1_43.txt | AC | 537 ms | 2432 KB |
subtask_1_44.txt | AC | 587 ms | 3200 KB |
subtask_1_45.txt | AC | 314 ms | 512 KB |
subtask_1_46.txt | AC | 417 ms | 2944 KB |
subtask_1_5.txt | AC | 59 ms | 256 KB |
subtask_1_6.txt | AC | 5 ms | 1408 KB |
subtask_1_7.txt | AC | 1 ms | 384 KB |
subtask_1_8.txt | AC | 1 ms | 512 KB |
subtask_1_9.txt | AC | 64 ms | 512 KB |