# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
598828 | 2022-07-19T06:12:48 Z | 장태환(#8458) | Potemkin cycle (CEOI15_indcyc) | C++17 | 18 ms | 4040 KB |
#include <bits/stdc++.h> #include <assert.h> using namespace std; int num[1010]; int depth[1010]; int maxbe[1010]; int par[1010]; vector<int>link[1010]; bool arr[1010][1010]; vector<pair<int, int>>t; int c; void dfs(int n, int p = 0, int d = 0) { depth[n] = d; num[n] = ++c; par[n] = p; int i; for (i = 0; i < link[n].size(); i++) { if (link[n][i] == p) continue; if (num[link[n][i]]) { if (depth[link[n][i]] < d) { maxbe[n] = max(maxbe[n], depth[link[n][i]]); t.push_back({ n,link[n][i] }); } else { maxbe[link[n][i]] = max(maxbe[link[n][i]], d); t.push_back({ link[n][i],n }); } } else { dfs(link[n][i], n, d + 1); } } } int main() { memset(maxbe, -10, sizeof(maxbe)); ios_base::sync_with_stdio(false); cin.tie(NULL); int N, M; cin >> N >> M; int i; for (i = 0; i < M; i++) { int a, b; cin >> a >> b; link[a].push_back(b); link[b].push_back(a); arr[a][b] = arr[b][a] = true; } for (i = 1; i <= N; i++) { if (!num[i]) { dfs(i); } } for (i = 0; i < t.size(); i++) { vector<int>ans; int c = 0; while (depth[t[i].first] > depth[t[i].second]) { if (maxbe[t[i].first] > depth[t[i].second] || (maxbe[t[i].first] == depth[t[i].second] && c)) { c = -1; break; } ans.push_back(t[i].first); t[i].first = par[t[i].first]; c++; } if (c >= 0) { ans.push_back(t[i].second); if (ans.size() <= 3) { continue; } int j, k; for (j = 0; j < ans.size(); j++) { if (!arr[ans[j]][ans[(j + 1) % ans.size()]]) assert(0); } for (i = 0; i < ans.size(); i++) cout << ans[i] << ' '; return 0; } } cout << "no"; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 340 KB | Output is correct |
2 | Correct | 0 ms | 340 KB | Output is correct |
3 | Correct | 1 ms | 340 KB | Output is correct |
4 | Correct | 0 ms | 340 KB | Output is correct |
5 | Correct | 0 ms | 340 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 340 KB | Expected integer, but "no" found |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 340 KB | Expected integer, but "no" found |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 468 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 468 KB | Expected integer, but "no" found |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 852 KB | Output is correct |
2 | Incorrect | 1 ms | 852 KB | Expected integer, but "no" found |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 724 KB | Expected integer, but "no" found |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 10 ms | 3128 KB | Expected integer, but "no" found |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 7 ms | 2204 KB | Expected integer, but "no" found |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 17 ms | 4040 KB | Output is correct |
2 | Correct | 18 ms | 4008 KB | Output is correct |
3 | Incorrect | 13 ms | 3272 KB | Expected integer, but "no" found |
4 | Halted | 0 ms | 0 KB | - |