Pagini recente » Cod sursa (job #433874) | Cod sursa (job #2216231) | Cod sursa (job #2883253) | Cod sursa (job #2004726) | Cod sursa (job #2869914)
#include <bits/stdc++.h>
using namespace std;
vector<int> ans,v[100001];
int a[500005],b[500005],parc[500005];
void ciclu(int nod)
{
int nod1,muchie;
while(v[nod].size()!=0)
{
muchie=v[nod].back();
v[nod].pop_back();
if(parc[muchie]==0)
{
if(nod==a[muchie])
nod1=b[muchie];
else
nod1=a[muchie];
parc[muchie]=1;
ciclu(nod1);
}
}
ans.push_back(nod);
}
int main()
{
ifstream cin("ciclueuler.in");
ofstream cout("ciclueuler.out");
int n,m,i;
cin>>n>>m;
for(i=1; i<=m; ++i)
{
cin>>a[i]>>b[i];
v[a[i]].push_back(i);
v[b[i]].push_back(i);
}
for(i=1; i<=n; ++i)
if(v[i].size()%2==1)
{
cout<<-1;
return 0;
}
ciclu(1);
for(i=0; i<(ans.size())-1; ++i)
cout<<ans[i]<<" ";
return 0;
}