Submission #230725

#TimeUsernameProblemLanguageResultExecution timeMemory
230725nicolaalexandraPotemkin cycle (CEOI15_indcyc)C++14
30 / 100
1097 ms10856 KiB
#include <bits/stdc++.h>
#define DIM 1010
using namespace std;

set <int> L[DIM],s;
deque <int> d,sol;
vector <pair<int,int> > mch;
int n,m,x,y,i,j,ok;
int viz[DIM];

int verif (int nod, int tata){
    for (auto vecin : L[nod])
        if (vecin != tata && s.find(vecin) != s.end())
            return 0;
    return 1;
}
void dfs (int nod, int dest){
    if (ok)
        return;

    d.push_back(nod);
    s.insert(nod);
    viz[nod] = 1;
    if (nod == dest && d.size() >= 4){
        sol = d;
        ok = 1;
        return;
    }

    for (auto vecin : L[nod])
        if (!viz[vecin] && verif(vecin,nod))
            dfs (vecin,dest);

    /// am terminat cu nod, trb sa l sterg
    d.pop_back();
    s.erase(nod);
}
int main (){

    //ifstream cin ("date.in");
    //ofstream cout ("date.out");

    cin>>n>>m;
    for (i=1;i<=m;i++){
        cin>>x>>y;
        L[x].insert(y);
        L[y].insert(x);
        mch.push_back(make_pair(x,y));
    }

    for (auto it : mch){
        int x = it.first, y = it.second;
        /// sterg muchia x,y
        L[x].erase(y);
        L[y].erase(x);

        d.clear(), s.clear();
        memset (viz,0,sizeof viz);
        ok = 0;

        dfs (x,y);

        if (ok){
            for (auto it : sol)
                cout<<it<<" ";
            return 0;
        }

        L[x].insert(y);
        L[y].insert(x);
    }

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