# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
959311 | 2024-04-07T23:29:09 Z | Cyber_Wolf | Pipes (CEOI15_pipes) | C++17 | 987 ms | 65536 KB |
#include <bits/stdc++.h> using namespace std; vector<int> adj[100005]; int tin[100005], par[100005][2], low[100005]; int get1(int src) { return par[src][0] = (src == par[src][0] ? src : get1(par[src][0])); } int get2(int src) { return par[src][1] = (src == par[src][1] ? src : get2(par[src][1])); } int n, m, tmp, pa = -1; void dfs(int src) { bool a = false; tin[src] = low[src] = ++tmp; for(auto it : adj[src]) { if(it == pa && !a) { a = true; continue; } if(tin[it]) { low[src] = min(low[src], tin[it]); continue; } swap(pa, src); dfs(it); swap(pa, src); low[src] = min(low[src], low[it]); if(low[it] > tin[src]) { printf("%d %d\n", src, it); } } return ; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); scanf("%d%d", &n, &m); for(int i = 1; i <= n; i++) par[i][0] = par[i][1] = i; int u, v, pU, pV; while(m--) { scanf("%d%d", &u, &v); pU = get1(u), pV = get1(v); if(pU != pV) { par[pU][0] = pV; adj[u].push_back(v), adj[v].push_back(u); } else{ pU = get2(u), pV = get2(v); if(pU != pV) { par[pU][1] = pV; adj[u].push_back(v), adj[v].push_back(u); } } } for(int i = 1; i <= n; i++) { if(!tin[i]) dfs(i); } return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 4184 KB | Output is correct |
2 | Correct | 1 ms | 4188 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 4 ms | 4700 KB | Output is correct |
2 | Correct | 6 ms | 4396 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 88 ms | 9828 KB | Output is correct |
2 | Correct | 94 ms | 9556 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 145 ms | 14424 KB | Output is correct |
2 | Correct | 182 ms | 15592 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 246 ms | 21904 KB | Memory limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 319 ms | 30828 KB | Memory limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 483 ms | 43136 KB | Memory limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 634 ms | 55124 KB | Memory limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 787 ms | 65536 KB | Memory limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 987 ms | 65536 KB | Memory limit exceeded |
2 | Halted | 0 ms | 0 KB | - |