# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
156366 | 2019-10-05T11:20:34 Z | Akashi | Potemkin cycle (CEOI15_indcyc) | C++14 | 31 ms | 2020 KB |
#include <bits/stdc++.h> using namespace std; int n, m; bool ad[1005][1005]; bool viz[1005]; int f[1005], TT[1005]; vector <int> v[1005]; vector <int> sol; queue <int> q; void find_path(int x, int y){ q.push(x); viz[x] = 1; while(!q.empty()){ int nod = q.front(); q.pop(); for(auto it : v[nod]) if(!viz[it]) viz[it] = 1, TT[it] = nod, q.push(it); } while(y != x){ sol.push_back(y); y = TT[y]; } sol.push_back(x); } bool find(int nod){ for(auto it : v[nod]) if(!f[it]) f[it] = 3, q.push(it); if(q.empty()) return 0; set <int> nodes; nodes.insert(nod); while(!q.empty()){ int nod = q.front(); q.pop(); for(auto it : v[nod]){ if(!f[it]) f[it] = 3, q.push(it); if(f[it] == 2) nodes.insert(it); } } for(auto x : nodes){ for(auto y : nodes){ if(!ad[x][y] && x != y){ find_path(x, y); return 1; } } } return 0; } bool solve(int nod){ f[nod] = 1; viz[nod] = 1; for(auto it : v[nod]) f[it] = 2; for(auto it : v[nod]) if(find(it)) return 1; return 0; } int main() { scanf("%d%d", &n, &m); int x, y; for(int i = 1; i <= m ; ++i){ scanf("%d%d", &x, &y); v[x].push_back(y); v[y].push_back(x); ad[x][y] = ad[y][x] = 1; } for(int i = 1; i <= n ; ++i){ sol.push_back(i); memset(f, 0, sizeof(f)); memset(viz, 0, sizeof(viz)); if(solve(i)) break ; sol.pop_back(); } if(sol.size() == 0) printf("no"); else for(auto it : sol) printf("%d ", it); return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Correct | 2 ms | 376 KB | Output is correct |
3 | Correct | 2 ms | 376 KB | Output is correct |
4 | Correct | 2 ms | 380 KB | Output is correct |
5 | Correct | 2 ms | 376 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 376 KB | Wrong adjacency |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Incorrect | 2 ms | 376 KB | Wrong answer on graph without induced cycle |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 504 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 504 KB | Wrong adjacency |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 9 ms | 760 KB | Output is correct |
2 | Incorrect | 3 ms | 632 KB | Wrong adjacency |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 3 ms | 760 KB | Wrong adjacency |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 18 ms | 2020 KB | Wrong adjacency |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 11 ms | 1656 KB | Wrong adjacency |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 31 ms | 1784 KB | Wrong adjacency |
2 | Halted | 0 ms | 0 KB | - |