Cod sursa(job #3300420)

Utilizator Tudor_CCTudor Cocu Tudor_CC Data 15 iunie 2025 16:51:05
Problema Ciclu Eulerian Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <bits/stdc++.h>

using namespace std;

multiset <int> s[100055];

int a[500555];

int in=0;



void bk(int k)
{
    while(s[k].size())
    {
        int v=*s[k].begin();
        s[k].erase(s[k].find(v));
        s[v].erase(s[v].find(k));
        bk(v);
    }
    ++in;
    a[in]=k;
}

int main()
{
    ifstream cin("ciclueuler.in");
    ofstream cout("ciclueuler.out");
    int n,m,x,y;
    cin>>n>>m;
    for(int i=1;i<=m;++i)
    {
        cin>>x>>y;
        s[x].insert(y);
        s[y].insert(x);
    }
    bk(1);
    bool ok=true;
    for(int i=1;i<=n;++i)
    {
        if(s[i].size()!=0)
        {
            ok=false;
        }
    }
    if(ok==false)
    {
        cout<<-1;
    }
    else
    {
        for(int i=m;i>=1;--i)
        {
            cout<<a[i]<<" ";
        }
    }
    return 0;
}