Pagini recente » Cod sursa (job #1524320) | Cod sursa (job #2830718) | Cod sursa (job #45433) | Cod sursa (job #1811136) | Cod sursa (job #263477)
Cod sursa(job #263477)
#include<stdio.h>
#include<malloc.h>
const int maxn = 500000;
struct nod
{
int vec;
int poz;
nod* next;
};
nod* M[maxn];
int N,MU;
int VER[maxn];
int GR[maxn];
void introduce(int vecin,int pozitie,int cur)
{
nod* nou = new nod;
nou -> vec = vecin;
nou -> poz = pozitie;
nou ->next = M[cur];
M[cur] = nou;
}
void dfs(int x)
{
for(nod* cur = M[x];cur != NULL; cur = cur -> next)
{
if (VER[cur -> poz]) continue;
VER[cur -> poz] = 1;
dfs(cur -> vec);
printf("%d ",x);
}
}
int main()
{
freopen("ciclueuler.in","r",stdin);
freopen("ciclueuler.out","w",stdout);
scanf("%d %d\n",&N,&MU);
int i;
for(i = 1;i <= MU; ++i)
{
int x = 0,y = 0;
scanf("%d %d\n",&x,&y);
introduce(y,i,x);
introduce(x,i,y);
GR[x]++;GR[y]++;
}
for(i = 1;i <= N; ++i)
if (GR[i] % 2 == 1) {printf("-1\n");return 0;}
dfs(1);
return 0;
}