# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
208244 | 2020-03-10T12:17:38 Z | alexandra_udristoiu | Pipes (CEOI15_pipes) | C++14 | 2248 ms | 24440 KB |
#include<iostream> #include<vector> #include<cstdio> #define DIM 100005 using namespace std; int n, m, i, x, y, r1, r2, nr; int r[DIM], ok[DIM], t[DIM], nxt[DIM], niv[DIM]; vector<int> v[DIM]; int rad(int x){ while(r[x] > 0){ x = r[x]; } return x; } int urm(int x){ int y, aux; y = nxt[x]; while(ok[y] == 1){ y = nxt[y]; } while(x != y){ aux = nxt[x]; nxt[x] = y; x = aux; } return y; } void dfs(int nod, int tt){ niv[nod] = 1 + niv[tt]; for(int i = 0; i < v[nod].size(); i++){ if(v[nod][i] != tt){ dfs(v[nod][i], nod); } } if(t[nod] != tt){ ok[ t[nod] ] = ok[nod]; t[nod] = tt; nxt[nod] = t[nod]; } } int main(){ scanf("%d%d", &n, &m); for(i = 1; i <= n; i++){ r[i] = -1; } for(; m; m--){ scanf("%d%d", &x, &y); r1 = rad(x); r2 = rad(y); if(r1 != r2){ /*nr++; if(nr == n){ break; }*/ v[x].push_back(y); v[y].push_back(x); if(r[r1] < r[r2]){ r[r1] += r[r2]; r[r2] = r1; dfs(y, x); ok[y] = 0; } else{ r[r2] += r[r1]; r[r1] = r2; dfs(x, y); ok[x] = 0; } } else{ while(x != y){ if(niv[x] > niv[y]){ ok[x] = 1; x = urm(x); } else{ ok[y] = 1; y = urm(y); } } } } for(i = 1; i <= n; i++){ if(ok[i] == 0 && t[i] != 0){ cout<< i <<" "<< t[i] <<"\n"; } } }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 2680 KB | Output is correct |
2 | Correct | 6 ms | 2680 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 10 ms | 3064 KB | Output is correct |
2 | Correct | 11 ms | 3064 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 176 ms | 8264 KB | Output is correct |
2 | Correct | 175 ms | 8184 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 312 ms | 12804 KB | Output is correct |
2 | Correct | 371 ms | 14460 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Runtime error | 517 ms | 20048 KB | Memory limit exceeded (if you are sure your verdict is not MLE, please contact us) |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 648 ms | 9336 KB | Output is correct |
2 | Runtime error | 583 ms | 24440 KB | Memory limit exceeded (if you are sure your verdict is not MLE, please contact us) |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1042 ms | 10104 KB | Output is correct |
2 | Correct | 1018 ms | 10232 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1401 ms | 11000 KB | Output is correct |
2 | Runtime error | 1334 ms | 23928 KB | Memory limit exceeded (if you are sure your verdict is not MLE, please contact us) |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1735 ms | 11000 KB | Output is correct |
2 | Correct | 1687 ms | 14160 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2248 ms | 13816 KB | Output is correct |
2 | Runtime error | 2158 ms | 18020 KB | Memory limit exceeded (if you are sure your verdict is not MLE, please contact us) |