Cod sursa(job #2451566)

Utilizator butnaru_vlad2003Butnaru Vlad butnaru_vlad2003 Data 27 august 2019 11:49:46
Problema Ciclu Eulerian Scor 100
Compilator cpp-64 Status done
Runda repost Marime 0.91 kb
#include <bits/stdc++.h>
#define cin in
#define cout out
using namespace std;
ifstream in ("ciclueuler.in");
ofstream out ("ciclueuler.out");
vector<pair<int,int>> v[500011];
vector<int> rasp;
int vizitat[500001];
void euler (int nod)
{
    while (!v[nod].empty())
    {
        int muchie=v[nod].back().second,next=v[nod].back().first;
        v[nod].pop_back();
        if (!vizitat[muchie])
        {
            vizitat[muchie]=1;
            euler(next);
        }
    }
    rasp.push_back(nod);
}
int main ()
{
    int n,m,a,b;
    in>>n>>m;
    for (int i=1;i<=m;++i)
    {
        in>>a>>b;
        v[a].push_back({b,i});
        v[b].push_back({a,i});
    }
    for (int i=1;i<=n;++i)
        if ((v[i].size())%2==1)
        {
            cout<<-1;
            return 0;
        }
    euler(1);
    for (int i=0;i<rasp.size()-1;++i)
        cout<<rasp[i]<<' ';
    return 0;
}