Cod sursa(job #2813743)

Utilizator rareshinnhoMiroiu Rares rareshinnho Data 7 decembrie 2021 10:15:42
Problema Ciclu Eulerian Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");

vector<pair<int,int> > v[100002];
int n,m,i,z,y,k,a[5000002];
bool viz[500002];

void ciclu(int x)
{
    int vecin,u;
    while(!v[x].empty())
    {
        vecin=v[x].back().first;
        u=v[x].back().second;
        v[x].pop_back();
        if(!viz[u])
        {
            viz[u]=1;
            ciclu(vecin);
        }

    }
    a[++k]=x;
}
int main()
{
    fin>>n>>m;
    for(i=1;i<=m;i++)
    {
        fin>>z>>y;
        v[z].push_back({y,i});
        v[y].push_back({z,i});
    }
    for(i=1;i<=n;i++)
    {
        if(v[i].size()%2!=0)
        {
            fout<<-1;
            return 0;
        }
    }
    ciclu(1);
    for(i=1;i<k;i++)fout<<a[i]<<" ";
    return 0;
}