Cod sursa(job #2169350)

Utilizator Garen456Paun Tudor Garen456 Data 14 martie 2018 14:57:48
Problema Ciclu Eulerian Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
int n,m,x[500005],y[500005],ct;
vector<int>V[100005];
bool viz[500005];
inline void DFS(int l)
{
    int i=0,dim=V[l].size(),k;

    for(;i<dim;++i)
    {  k=V[l][i];
        if(!  viz[ k ]      )
    { viz[k]=1;
        DFS(x[k]+y[k]-l);
    }
    }
    fout<<l<<" ";
}


int main()
{
    fin>>n>>m;
    int ok=1;
    for(int i=1;i<=m;++i)
        { fin>>x[i]>>y[i];
            V[x[i]].push_back(i);
            V[y[i]].push_back(i);
        }
    for(int 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);

    }

    return 0;
}