Cod sursa(job #1798475)

Utilizator iulianrotaruRotaru Gheorghe-Iulian iulianrotaru Data 5 noiembrie 2016 11:24:00
Problema Ciclu Eulerian Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("ciclueuler.in");
ofstream g("ciclueuler.out");
int N,M,i,x,y,dim,X[1<<19],Y[1<<19],sol[1<<19];
bool viz[1<<19];
vector<int> G[1<<17];
inline void euler(int nod)
{
    for(int i=0;i<G[nod].size();++i)
    {
        int x=G[nod][i];
        if(!viz[x])
        {
            viz[x]=1;
            euler(X[x]+Y[x]-nod);
        }
    }
    g<<nod<<' ';
}
int main()
{
    f>>N>>M;
    for(i=1;i<=M;++i)
    {
        f>>X[i]>>Y[i];
        G[X[i]].push_back(i);
        G[Y[i]].push_back(i);
    }
    for(i=1;i<=N;++i)
        if(G[i].size()&1)
        {
            g<<-1;
            return 0;
        }
    euler(1);
    return 0;
}