# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
46859 | 2018-04-24T04:19:20 Z | HachikujiMayoi | Potemkin cycle (CEOI15_indcyc) | C++14 | 1000 ms | 32752 KB |
#include <bits/stdc++.h> using namespace std; const int N = 1007; int n, m; int blocked[N], par[N], vis[N]; vector <int> g[N], comp[N]; int G[N][N]; int Get(int a){ if(par[a] == a) return a; return par[a] = Get(par[a]); } void Union(int a, int b){ a = Get(a); b = Get(b); if(a == b) return; if(comp[b].size() > comp[a].size()) swap(a, b); par[b] = a; for(auto i : comp[b]) comp[a].push_back(i); } void dfs(int at){ if(blocked[at]) return; vis[at] = 1; for(auto i : g[at]){ if(!vis[i]){ Union(at, i); dfs(i); } } } void solve(int a, int b, int c){ blocked[a] = 0; blocked[c] = 0; vector <int> dis(n + 1, N), dad(n + 1, 0); queue <int> q; dis[a] = 0; q.push(a); while(!q.empty()){ int u = q.front(); q.pop(); for(auto i : g[u]){ if(blocked[i]) continue; if(dis[i] > dis[u] + 1){ dis[i] = dis[u] + 1; dad[i] = u; q.push(i); } } } printf("%d %d %d", a, b, c); int cur = dad[c]; while(cur != a){ printf(" %d", cur); cur = dad[cur]; } printf("\n"); } int main(){ int x, y; scanf("%d %d", &n, &m); for(int i = 1; i <= m; ++i){ scanf("%d %d", &x, &y); g[x].push_back(y); g[y].push_back(x); G[x][y] = 1; G[y][x] = 1; } for(int i = 1; i <= n; ++i) G[i][i] = 1; for(int i = 1; i <= n; ++i){ memset(blocked, 0, sizeof(blocked)); memset(vis, 0, sizeof(vis)); blocked[i] = 1; for(auto j : g[i]){ blocked[j] = 1; } for(int j = 1; j <= n; ++j){ if(blocked[j]) comp[j] = {j}; else comp[j] = {}; par[j] = j; } for(int j = 1; j <= n; ++j){ if(!vis[j]) dfs(j); } for(int j : g[i]){ int k = Get(j); for(auto o : comp[k]){ if(!G[j][o]){ solve(j, i, o); return 0; } } } } printf("no\n"); return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Correct | 2 ms | 480 KB | Output is correct |
3 | Correct | 2 ms | 560 KB | Output is correct |
4 | Correct | 2 ms | 560 KB | Output is correct |
5 | Correct | 2 ms | 560 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 676 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 676 KB | Output is correct |
2 | Execution timed out | 1081 ms | 26240 KB | Time limit exceeded |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 26240 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 26240 KB | Output is correct |
2 | Execution timed out | 1086 ms | 27284 KB | Time limit exceeded |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 36 ms | 27284 KB | Output is correct |
2 | Correct | 4 ms | 27284 KB | Output is correct |
3 | Execution timed out | 1071 ms | 27284 KB | Time limit exceeded |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 1076 ms | 28032 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 1090 ms | 29956 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 1092 ms | 30684 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 32 ms | 30684 KB | Output is correct |
2 | Correct | 34 ms | 30684 KB | Output is correct |
3 | Execution timed out | 1073 ms | 32752 KB | Time limit exceeded |
4 | Halted | 0 ms | 0 KB | - |