Pagini recente » Cod sursa (job #671267) | Cod sursa (job #2890574) | Cod sursa (job #603829) | Cod sursa (job #2863420) | Cod sursa (job #2680692)
#include <bits/stdc++.h>
#define st first
#define nd second
#define pb push_back
#define N 50005
using namespace std;
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
typedef long long ll;
int n,x,y,k;
bool use[2*N];
vector <pair <int,int> > g[2*N];
vector <int> ans;
void euler(int nod)
{
int poz,v;
while(!g[nod].empty())
{
poz=g[nod].back().nd;
v=g[nod].back().st;
g[nod].pop_back();
if(!use[poz])
{
use[poz]=1;
euler(v);
}
}
ans.pb(nod);
}
int main()
{
fin>>n>>k;
for(int i=1;i<=k;i++)
{
fin>>x>>y;
g[x].pb({y,i});
g[y].pb({x,i});
}
for(int i=1;i<=n;i++)
if(g[i].size()%2)
return fout<<-1, 0;
euler(1);
for(auto it : ans)
fout<<it<<' ';
return 0;
}