Cod sursa(job #3348995)

Utilizator tudorhTudor Horobeanu tudorh Data 24 martie 2026 22:30:49
Problema Ciclu Eulerian Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <bits/stdc++.h>
#define pii pair<int,int>
#define pb push_back
#define ll long long


using namespace std;

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

const int nmax=1e5;

multiset<int>v[nmax+1];

vector<int>ans;

void euler(int nod){
    while(!v[nod].empty()){
        int t=*v[nod].begin();
        v[nod].erase(v[nod].find(t));
        v[t].erase(v[t].find(nod));
        euler(t);
    }
    ans.pb(nod);
}

int main() {

    int n,m;
    fn>>n>>m;
    for(int i=1;i<=m;i++){
        int st,dr;
        fin>>st>>dr;
        v[st].insert(dr);
        v[dr].insert(st);
    }
    euler(1);
    ans.pop_back();
    if(ans.size()!=m){
        cout<<-1;
        return 0;
    }
    for(int i:ans)
        fout<<i<<' ';
    return 0;
}