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...