Cod sursa(job #2169308)

Utilizator Garen456Paun Tudor Garen456 Data 14 martie 2018 14:43:44
Problema Ciclu Eulerian Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
int n,m,x[500005],y[500005],ct,u[500505];
vector<int>V[100005];
bool viz[500005];
void DFS(int l)
{
    vector<int>::iterator it;

    for(it=V[l].begin();it!=V[l].end();++it)
        if(!viz[*it])
    { viz[*it]=1;
        DFS(x[*it]+y[*it]-l);
    }
    u[++ct]=l;

}


int main()
{
    fin>>n>>m;
    int i,a,b,ok=1;
    for(i=1;i<=m;++i)
        { fin>>x[i]>>y[i];
            V[x[i]].push_back(i);
            V[y[i]].push_back(i);
        }
    for(i=1;i<=n;++i)
      if(V[i].size()%2==1 || V[i].size()==0)
      {ok=0; break;}

    if(ok==0)
        fout<<-1;
    else
    { DFS(1);
        for(i=1;i<=ct;++i)
            fout<<u[i]<<" ";
    }

    return 0;
}