Cod sursa(job #796958)

Utilizator RaduDoStochitoiu Radu RaduDo Data 13 octombrie 2012 01:23:04
Problema Ciclu Eulerian Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <stdio.h>
#define MAX_N 20010
#define MAX_M 500010
int n,m,C[MAX_M],nc,x,y,i;
char G[MAX_N][MAX_N];

void euler(int nod)
{
	int urm;
	for (urm = 1;urm <= n;urm++)
	if (G[nod][urm])
	{
		G[nod][urm] = 0;
		G[urm][nod] = 0;
		euler(urm);
	}
	C[++nc] = nod;
}

int main()
{
	freopen("ciclueuler.in","r",stdin);
	freopen("ciclueuler.out","w",stdout);
	scanf("%d%d",&n,&m);
	for(; m>0; --m)
	{
		scanf("%d%d",&x,&y);
		G[x][y]=1;
		G[y][x]=1;
	}
	euler(1);
	for(i=1;i<=nc;++i)
		printf("%d ",C[i]);
	printf("\n");
	return 0;
}