Submission #1203177

#TimeUsernameProblemLanguageResultExecution timeMemory
1203177SSKMFPotemkin cycle (CEOI15_indcyc)C++20
50 / 100
1095 ms1488 KiB
#include <bits/stdc++.h> using namespace std; vector <int> adiacenta[1001]; int distanta[1001] , sursa[1001] , __sursa[1001] , stiva[1001]; 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]); } for (int inceput = 1 ; inceput <= numar_noduri ; inceput++) { for (int indice = 1 ; indice <= numar_noduri ; indice++) { distanta[indice] = -1; } queue <int> candidati; distanta[inceput] = 0; sursa[inceput] = 0; __sursa[inceput] = 0; for (auto vecin : adiacenta[inceput]) { __sursa[vecin] = inceput; sursa[vecin] = vecin; distanta[vecin] = 1; candidati.push(vecin); } while (!candidati.empty()) { int nod = candidati.front(); candidati.pop(); for (auto vecin : adiacenta[nod]) { if (distanta[vecin] == -1) { __sursa[vecin] = nod; distanta[vecin] = distanta[nod] + 1; sursa[vecin] = sursa[nod]; candidati.push(vecin); } else if (sursa[nod] != sursa[vecin] && distanta[nod] + distanta[vecin] > 2) { bool gasit = false; for (auto __vecin : adiacenta[sursa[nod]]) { if (gasit |= (__vecin == sursa[vecin])) { break; } } if (!gasit) { while (nod != inceput) { cout << nod << ' '; nod = __sursa[nod]; } nod = vecin; while (nod) { stiva[++stiva[0]] = nod; nod = __sursa[nod]; } while (stiva[0]) { cout << stiva[stiva[0]--] << ' '; } return 0; } } } } } 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...