Pagini recente » Cod sursa (job #3264856) | Cod sursa (job #2030817) | Cod sursa (job #1671214) | Cod sursa (job #347731) | Cod sursa (job #305551)
Cod sursa(job #305551)
#include <stdio.h>
long a[4][1000001],st[100001],fin[100001],i,x,y,n,m,k,l;
void dfs(long x)
{long i=st[x];
while(i!=0)
{if(a[3][i]==0)
{a[3][i]=1;if(i%2)a[3][i+1]=1;else a[3][i-1]=1;dfs(a[1][i]);}
i=a[2][i];
}
k++;if(k<=m)printf("%ld ",x);
}
int main()
{freopen("ciclueuler.in","r",stdin);freopen("ciclueuler.out","w",stdout);
scanf("%ld%ld",&n,&m);
for(i=1;i<=m;i++)
{scanf("%ld%ld",&x,&y);
if(fin[x]==0){st[x]=fin[x]=l+1;l++;a[1][l]=y;}
else{a[2][fin[x]]=l+1;fin[x]=l+1;l++;a[1][l]=y;}
if(fin[y]==0){st[y]=fin[y]=l+1;l++;a[1][l]=x;}
else{a[2][fin[y]]=l+1;fin[y]=l+1;l++;a[1][l]=x;}
}
dfs(1);
fclose(stdin);fclose(stdout);
return 0;
}