Pagini recente » Cod sursa (job #2975092) | Cod sursa (job #1439358) | Cod sursa (job #2670237) | Cod sursa (job #1912029) | Cod sursa (job #699895)
Cod sursa(job #699895)
#include<stdio.h>
#include<cstring>
using namespace std;
int n,m,nr[100002];
char viz[100002];
struct muchie
{
int x,poz;
muchie *adresa;
};
muchie *a[100001];
void adaug(int x,int y, int poz)
{
muchie *p;
p=new muchie;
p->x=x;
p->poz=poz;
p->adresa=a[y];
a[y]=p;
}
void citire()
{
int i,x,y;
scanf("%d %d",&n,&m);
memset(a,0,sizeof(a));
for(i=1;i<=m;i++)
{
scanf("%d %d",&x,&y);
adaug(x,y,i);
adaug(y,x,i);
nr[x]++;
nr[y]++;
}
fclose(stdin);
}
void dfs(int x)
{
muchie *p;
for(p=a[x];p;p=p->adresa)
if(viz[p->poz]==0)
{
viz[p->poz]=1;
dfs(p->x);
printf("%d ",x);
}
}
int main()
{
int i;
freopen("ciclueuler.in","r",stdin);
freopen("ciclueuler.out","w",stdout);
citire();
for(i=1;i<=n;i++)
if(nr[i]%2==1)
{
printf("-1");
return 0;
}
dfs(1);
fclose(stdout);
return 0;
}