Pagini recente » Cod sursa (job #2555010) | Cod sursa (job #2677340) | Cod sursa (job #2480279) | Cod sursa (job #3272744) | Cod sursa (job #264797)
Cod sursa(job #264797)
#include<stdio.h>
typedef struct
{ int x,leg;} muchie;
muchie a[1000001];
int n,m,t[100001],stiva[1000001],vf,x,y,i,k;
int main()
{
freopen("ciclueuler.in","r",stdin);
freopen("ciclueuler.out","w",stdout);
scanf("%i%i",&n,&m);
for (k=0,i=1;i<=m;i++)
{
scanf("%i%i",&x,&y);
k++; a[k].x=y; a[k].leg=t[x]; t[x]=k;
k++; a[k].x=x; a[k].leg=t[y]; t[y]=k;
}
k=m+1;
stiva[1]=1; vf=1;
while (vf>0)
{
x=stiva[vf];
if (t[x]>0)
{
i=t[x];
y=a[i].x;
vf++;
stiva[vf]=y;
t[x]=a[i].leg;//practic se elimina muchia x y
i=t[y];
if (a[i].x==x)t[y]=a[i].leg;
else {
while (a[a[i].leg].x!=x)i=a[i].leg;
a[i].leg=a[a[i].leg].leg;
}
}
else
{
printf("%i ",stiva[vf]);
vf--;
}
}
if (k>0) { freopen("ciclueuler.out","w",stdout); printf("-1");}
fclose(stdout);
fclose(stdin);
return 0;
}