Pagini recente » Cod sursa (job #420354) | Cod sursa (job #2577507) | Cod sursa (job #2200284) | Cod sursa (job #2629776) | Cod sursa (job #676611)
Cod sursa(job #676611)
#include<stdio.h>
#include<vector>
#include<deque>
#define pb push_back
#define Nmax 100009
using namespace std;
int x,y,next,nod,n,m,i,j;
vector<int> a[Nmax];
vector<int>::iterator it;
deque<int> Q;
int DF()
{
Q.pb(1);
while (!Q.empty())
{
nod=Q.front();
if (a[nod].empty())
{
printf("%d ",nod);
Q.pop_front();
continue;
}
next=a[nod].back();
a[nod].pop_back();
Q.push_front(next);
for (it=a[next].begin();it!=a[next].end();it++)
if (*it==nod)
{
a[next].erase(it);
break;
}
}
}
int main()
{
freopen("ciclueuler.in","r",stdin);
freopen("ciclueuler.out","w",stdout);
scanf("%d%d",&n,&m);
for (i=1;i<=m;i++)
{
scanf("%d%d",&x,&y);
a[x].pb(y);
a[y].pb(x);
}
for (i=1;i<=n;i++)
if (a[i].size()%2)
{
printf("-1\n");
return 0;
}
DF();
}