Pagini recente » Cod sursa (job #2492221) | Cod sursa (job #3202960) | Cod sursa (job #3255783) | Cod sursa (job #3255784) | Cod sursa (job #583525)
Cod sursa(job #583525)
#include<stdio.h>
#define N 100001
#define M 500001
long a[M],b[M],d[M],c[M]={0},i,n,m,k=1,g=0,deg[N]={0};
int main()
{freopen("ciclueuler.in","r",stdin);
freopen("ciclueuler.out","w",stdout);
scanf("%ld%ld\n",&n,&m);
for(i=1;i<=m;i++)
{scanf("%ld%ld\n",&a[i],&b[i]);
deg[a[i]]++;
deg[b[i]]++;}
d[1]=1;
while(k<=m&&g==0)
{g=1;
for(i=1;i<=m;i++)
if(c[i]==0&&a[i]==d[k]&°[a[i]]>=1&°[b[i]]>1)
{c[i]=1;
d[++k]=b[i];
deg[a[i]]--;
deg[b[i]]--;
g=0;
break;}
else
if(c[i]==0&&b[i]==d[k]&°[a[i]]>1&°[b[i]]>=1)
{c[i]=1;
d[++k]=a[i];
deg[a[i]]--;
deg[b[i]]--;
g=0;
break;}}
if(k==m)
{for(i=1;i<=m;i++)
printf("%ld ",d[i]);}
else
printf("-1");
fclose(stdin);
fclose(stdout);
return 0;}