Pagini recente » Cod sursa (job #3293607) | Cod sursa (job #2180139) | Cod sursa (job #1353948) | Cod sursa (job #2836846) | Cod sursa (job #3300425)
#include <bits/stdc++.h>
using namespace std;
vector <int> s[100055];
vector <int> q[100055];
int a[500555];
int in=0;
bitset <500555> f;
void bk(int k)
{
for(int i=0;i<s[k].size();++i)
{
if(f[q[k][i]]==1)
{
f[q[k][i]]=0;
bk(s[k][i]);
}
}
++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].push_back(y);
q[x].push_back(i);
s[y].push_back(x);
q[y].push_back(i);
f[i]=1;
}
bool ok=true;
for(int i=1;i<=n;++i)
{
if(s[i].size()%2!=0)
{
ok=false;
}
}
if(ok==false)
{
cout<<-1;
}
else
{
bk(1);
for(int i=1;i<=m;++i)
{
if(f[i]!=0)
{
ok=false;
}
}
if(ok==false)
{
cout<<-1;
}
else
{
for(int i=m;i>=1;--i)
{
cout<<a[i]<<" ";
}
}
}
return 0;
}