Cod sursa(job #2388196)

Utilizator CodrinsahCotarlan Codrin Codrinsah Data 25 martie 2019 19:14:12
Problema Ciclu Eulerian Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream fi ("ciclueuler.in");
ofstream fo ("ciclueuler.out");
vector<pair<int,int>> v[100005];
int idx[100005],viz[500006];
int nrnod,nrmuchii;
void dfs(int nod,int lvl)
{
    for (int i=0;i<v[nod].size();i++)
    {
        if (viz[v[nod][i].second]) continue;
        viz[v[nod][i].second]=1;
        int nextnod=v[nod][i].first;
        dfs(nextnod,lvl+1);
    }
    if (lvl) fo<<nod<<' ';
}
int main()
{
    fi>>nrnod>>nrmuchii;
    for (int i=1;i<=nrmuchii;i++)
    {
        int x,y;
        fi>>x>>y;
        v[x].push_back(make_pair(y,i));
        v[y].push_back(make_pair(x,i));
    }
    for (int i=1;i<=nrnod;i++)
        if (v[i].size()%2==1)
    {
        fo<<-1;
        return 0;
    }
    dfs(1,0);
    return 0;
}