Cod sursa(job #393420)

Utilizator testerXImari dochia testerXI Data 9 februarie 2010 14:13:55
Problema Ciclu Eulerian Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include<fstream.h>
#include<iostream.h>
int a[1000][1000],i,n,k,nn,m;
int c[50000],euler[50000];
ifstream f("ciclueuler.in");
ofstream g("ciclueuler.out");

void citire()
{
	int i,j;
	f>>n>>m;
	for(int i=1;i<=m;i++)
	{
	f>>i>>j;
	a[i][j]=a[j][i]=1;
	}
}

void ciclu(int euler[100],int &k,int nod)
{k=0;
	int y=nod;
	do
		{	 for(int i=1;i<=n;i++)
		   if(a[y][i])
		   {euler[++k]=i;
		   a[y][i]=a[i][y]=0;
		      y=i; break;
		   }
		   
		}
		while(y!=nod);
	
	
}
	
int main()
{int j;
	citire();c[1]=1;nn=1;
	for(i=1;i<=nn;i++)
	{
		ciclu(euler,k,c[i]);
		for(j=nn;j>i;j--)c[j+k]=c[j];
		nn+=k;
		for(j=1;j<=k;j++)
			 c[i+j]=euler[j];
		
	}
for(i=1;i<=nn;i++)
g<<c[i]<<" ";
return 0;
}