제출 #457596

#제출 시각아이디문제언어결과실행 시간메모리
457596vanicPotemkin cycle (CEOI15_indcyc)C++14
20 / 100
21 ms2480 KiB
#include <iostream> #include <cmath> #include <cstdio> #include <algorithm> #include <vector> using namespace std; const int maxn=1005; bool ms[maxn][maxn]; int n, m; vector < int > sol; bool bio[maxn]; vector < int > put; vector < int > tren; vector < int > cisti; bool dfs(int x){ bio[x]=1; tren.clear(); vector < int > upd; for(int i=(int)cisti.size()-1; i>-1; i--){ for(int j=0; j<cisti[i]; j++){ tren.pop_back(); } if(!tren.empty() && ms[x][put[i]]){ if(tren.size()==1){ cisti[i]++; upd.push_back(i); tren.pop_back(); } else{ tren.push_back(put[i]); tren.push_back(x); sol=tren; return 1; } } tren.push_back(put[i]); } cisti.push_back(0); put.push_back(x); for(int i=0; i<n; i++){ if(!bio[i] && ms[x][i]){ if(dfs(i)){ return 1; } } } while(!upd.empty()){ cisti[upd.back()]--; upd.pop_back(); } put.pop_back(); return 0; } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n >> m; int a, b; for(int i=0; i<m; i++){ cin >> a >> b; a--; b--; ms[a][b]=1; ms[b][a]=1; } for(int i=0; i<n; i++){ if(!bio[i] && dfs(i)){ for(int j=0; j<(int)sol.size(); j++){ cout << sol[j]+1 << ' '; } cout << '\n'; return 0; } } cout << "no\n"; 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...