Pagini recente » Cod sursa (job #2795593) | Cod sursa (job #959682) | Cod sursa (job #2294202) | Cod sursa (job #2694405) | Cod sursa (job #3300426)
#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)
{
while (!s[k].empty()) {
int v = s[k].back();
int id = q[k].back();
s[k].pop_back();
q[k].pop_back();
if (f[id]) {
f[id] = 0;
bk(v);
}
}
++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=1;i<=m;++i)
{
cout<<a[i]<<" ";
}
}
}
return 0;
}