Submission #1203160

#TimeUsernameProblemLanguageResultExecution timeMemory
1203160SSKMFPotemkin cycle (CEOI15_indcyc)C++20
20 / 100
8 ms1348 KiB
#include <bits/stdc++.h> using namespace std; vector <int> adiacenta[1001]; int adancime[1001] , maxim[1001] , sursa[1001] , stiva[1001]; inline void Parcurgere (const int nod) { adancime[nod] = adancime[sursa[nod]] + 1; for (auto vecin : adiacenta[nod]) { if (!adancime[vecin]) { sursa[vecin] = nod; Parcurgere(vecin); } else if (vecin != sursa[nod]) { maxim[nod] = max(maxim[nod] , adancime[vecin]); } } } inline void Solve (const int nod) { stiva[adancime[nod]] = nod; if (maxim[nod] && adancime[nod] - maxim[nod] + 1 >= 4) { bool gasit = false; for (int indice = maxim[nod] + 1 ; indice < adancime[nod] ; indice++) { if (gasit |= (maxim[stiva[indice]] >= maxim[nod])) { break; } } if (!gasit) { for (int indice = maxim[nod] ; indice <= adancime[nod] ; indice++) { cout << stiva[indice] << ' '; } exit(0); } } for (auto vecin : adiacenta[nod]) { if (sursa[vecin] == nod) { Solve(vecin); } } } int main () { ios :: sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int numar_noduri , numar_muchii; cin >> numar_noduri >> numar_muchii; while (numar_muchii--) { int nod[2]; cin >> nod[0] >> nod[1]; adiacenta[nod[0]].push_back(nod[1]); adiacenta[nod[1]].push_back(nod[0]); } Parcurgere(1); Solve(1); cout << "no"; 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...