Pagini recente » Cod sursa (job #1524431) | Cod sursa (job #2847513) | Cod sursa (job #2947649) | Cod sursa (job #825302) | Cod sursa (job #2087220)
#include <bits/stdc++.h>
using namespace std;
vector <int> G[100003];
stack <int> q;
int v,u,n,x,y,ok,nr,m;
void bfs(int u)
{
q.push(u);
while(!q.empty())
{
u=q.top();
if(G[u].size()==0)
{
q.pop();
nr++;
if(nr<=m)printf("%d ",u);
}
else
{
for(int i=0;i<G[u].size();i++)
{
v=G[u][i];
G[u].erase(G[u].begin()+0);
q.push(v);
for(int r=0;r<G[v].size();r++)
if(G[v][r]==u)
{
G[v].erase(G[v].begin()+r);
break;
}
break;
}
}
}
}
int main()
{
freopen("ciclueuler.in","r",stdin);
freopen("ciclueuler.out","w",stdout);
scanf("%d%d",&n,&m);
int s=m;
while(s--)
{
scanf("%d%d",&x,&y);
G[x].push_back(y);
G[y].push_back(x);
}
for(int i=1;i<=n;i++)
if(G[i].size()%2==1)
{
printf("-1");
return 0;
}
bfs(1);
// for(int i=2;i<=nr;i++)
// printf("%d ",rez[i]);
return 0;
}