Submission #257231

#TimeUsernameProblemLanguageResultExecution timeMemory
257231super_j6Potemkin cycle (CEOI15_indcyc)C++14
20 / 100
482 ms1528 KiB
#include <iostream> #include <cstdio> #include <algorithm> #include <vector> #include <string.h> #include <set> using namespace std; #define endl '\n' #define ll long long #define pi pair<int, int> #define f first #define s second const int mxn = 1000; int n, m; int d[mxn], p[mxn]; vector<int> g[mxn]; set<int, greater<int>> s; void dfs(int c){ bool t = 0; for(int i : g[c]) t |= (~d[i] && d[c] - d[i] == 2); if(t){ s.insert(d[c] - 2); }else{ int x = -1; for(int i : g[c]) if(i != p[c] && ~d[i] && (!~x || d[i] > d[x])) x = i; if(~x && d[x] > *s.begin()){ cout << c + 1; for(int i = p[c]; ~i && d[i] >= d[x]; i = p[i]) cout << " " << i + 1; cout << endl; exit(0); } } for(int i : g[c]){ if(~d[i]) continue; d[i] = d[c] + 1, p[i] = c; dfs(i); } if(t) s.erase(d[c] - 2); } int main(){ ios::sync_with_stdio(0); cin.tie(0); cin >> n >> m; for(int i = 0; i < m; i++){ int u, v; cin >> u >> v; u--, v--; g[u].push_back(v); g[v].push_back(u); } for(int i = 0; i < n; i++){ memset(d, -1, sizeof(d)); d[i] = 0, p[i] = -1; dfs(i); } cout << "no" << endl; return 0; }
#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...