제출 #36937

#제출 시각아이디문제언어결과실행 시간메모리
36937aomePotemkin cycle (CEOI15_indcyc)C++14
70 / 100
249 ms8096 KiB
#include <bits/stdc++.h> using namespace std; const int N = 1005; int n, m; int nxt[N][N]; bool E[N][N]; bool finish[N][N]; vector<int> res; void check() { int sz = res.size(); for (int i = 0; i < sz; ++i) { for (int j = i + 2; j < sz; ++j) { if (i == 0 && j == sz - 1) continue; assert(!E[res[i]][res[j]]); } } for (int i = 0; i < sz; ++i) { assert(E[res[i]][res[(i + 1) % sz]]); } for (auto i : res) cout << i << ' '; } void dfs(int x, int y) { for (int i = 1; i <= n; ++i) { if (E[y][i] && !E[x][i] && i != x && !finish[y][i]) { if (nxt[y][i]) { int curx = x, cury = y; while (curx != y && cury != i) { res.push_back(cury); int tmp = nxt[curx][cury]; cury = curx, curx = tmp; } res.push_back(cury), check(); exit(0); } else nxt[y][i] = nxt[i][y] = x, dfs(y, i); } } finish[x][y] = finish[y][x] = 1; } int main() { ios::sync_with_stdio(false); cin >> n >> m; for (int i = 1; i <= m; ++i) { int u, v; cin >> u >> v; E[u][v] = E[v][u] = 1; } for (int i = 1; i <= n; ++i) { for (int j = 1; j <= n; ++j) { if (!E[i][j] || nxt[i][j]) continue; nxt[i][j] = nxt[j][i] = i, dfs(i, j); } } cout << "no"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...