Cod sursa(job #2487137)

Utilizator Iulia14iulia slanina Iulia14 Data 4 noiembrie 2019 00:56:55
Problema Ciclu Eulerian Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1 kb
#include<fstream>
#include<vector>
#include<algorithm>
#include<stack>
using namespace std;
ifstream cin ("ciclueuler.in");
ofstream cout ("ciclueuler.out");
struct ura{
    int nod,muchie;
};
int k,muchii[500005],viz[500005],st[100005];
vector <ura> v[100005];
void euler (int nod)
{
    ura aux;
    while (v[nod].size())
    {
        aux=v[nod].back();
        v[nod].pop_back();
        if (viz[aux.muchie]==0)
        {
            viz[aux.muchie]=1;
            euler(aux.nod);
        }
    }
    st[++k]=nod;
}
int main ()
{
    int n,m,n1,n2,i;
    cin>>n>>m;
    for (i=1;i<=m;i++)
    {
        cin>>n1>>n2;
        ura aux;
        aux.nod=n2;
        aux.muchie=i;
        v[n1].push_back(aux);
        aux.nod=n1;
        v[n2].push_back(aux);

    }
    for (i=1;i<=n;i++)
    {
        if (v[i].size() %2==1)
        {
            cout<<-1;
            return 0;
        }
    }
    euler(1);
    for (i=1;i<k;i++)
        cout<<st[i]<<" ";
    return 0;
}