# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
208245 | 2020-03-10T12:18:35 Z | alexandra_udristoiu | Pipes (CEOI15_pipes) | C++14 | 2126 ms | 18040 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
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 2680 KB | Output is correct |
2 | Correct | 6 ms | 2680 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 10 ms | 2936 KB | Output is correct |
2 | Correct | 10 ms | 2936 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 177 ms | 2808 KB | Output is correct |
2 | Correct | 172 ms | 2808 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 303 ms | 3248 KB | Output is correct |
2 | Correct | 361 ms | 3192 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 514 ms | 3960 KB | Output is correct |
2 | Runtime error | 432 ms | 18040 KB | Memory limit exceeded (if you are sure your verdict is not MLE, please contact us) |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 662 ms | 6264 KB | Output is correct |
2 | Correct | 578 ms | 6396 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1052 ms | 6776 KB | Output is correct |
2 | Correct | 1022 ms | 6904 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1383 ms | 7764 KB | Output is correct |
2 | Correct | 1313 ms | 7800 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1734 ms | 7672 KB | Output is correct |
2 | Correct | 1687 ms | 7820 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2126 ms | 7544 KB | Output is correct |
2 | Correct | 2073 ms | 7928 KB | Output is correct |