Pagini recente » Cod sursa (job #654055) | Cod sursa (job #2078999) | Cod sursa (job #1876255) | Cod sursa (job #2845928) | Cod sursa (job #373373)
Cod sursa(job #373373)
#include <stdio.h>
#define max 1000
int a[max][max],i,j,n,m,k;
void erase(int v,int w)
{
int i,aux;
for(i=1; i<=a[v][0]; i++)
if(a[v][i]==w)
{
a[v][i]=a[v][a[v][0]--];
break;
}
for(i=1; i<=a[w][0]; i++)
if(a[w][i]==v)
{
a[w][i]=a[w][a[w][0]--];
break;
}
}
void euler(int v)
{
int i,w;
for(i=1; i<=a[v][0]; i++)
{
w=a[v][i];
erase(v,w);
euler(w);
}
printf("%d ",v);
}
int main()
{
freopen("ciclueuler.in","r",stdin);
freopen("ciclueuler.out","w",stdout);
scanf("%d%d",&n,&m);
for(k=1; k<=m; k++)
{
scanf("%d%d",&i,&j);
a[i][++a[i][0]]=j;
a[j][++a[j][0]]=i;
}
euler(1);
return 0;
}