Pagini recente » Cod sursa (job #1712972) | Istoria paginii runda/noaptea_burlacilor | Cod sursa (job #1793500) | Cod sursa (job #1877992) | Cod sursa (job #2451566)
#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;
}