Cod sursa(job #300359)

Utilizator ovy2906Popescu Ovidiu ovy2906 Data 7 aprilie 2009 13:23:07
Problema Ciclu Eulerian Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include<stdio.h>
int a[100][100],poz[100][100],n,c[100],nrc=0;
void citire(){
	int m,x,y;
	scanf("%d%d",&n,&m);
	while(m--){
		scanf("%d%d",&x,&y);
		a[x][++a[x][0]]=y;
		a[y][++a[y][0]]=x;
		poz[x][a[x][0]]=a[y][0];
		poz[y][a[y][0]]=a[x][0];
	}
}
void euler(int x){
	int i,y;
	for(i=1;i<=a[x][0];++i){
		y=a[x][i];
		if(y==0) continue;
		a[x][i]=0;
		a[y][poz[x][i]]=0;
		euler(y);
	}
	c[++nrc]=x;
}
int main(){
	freopen("ciclueuler.in","r",stdin);
	freopen("ciclueuler.out","w",stdout);
	citire();
	euler(1);
	for(int i=1;i<=nrc;i++)
		printf("%d ",c[i]);
	return 0;
}