Cod sursa(job #246883)

Utilizator Sorin_IonutBYSorynyos Sorin_Ionut Data 21 ianuarie 2009 19:11:49
Problema Ciclu Eulerian Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <iostream.h>
#include <fstream.h>

#define IN "ciclueuler.in"
#define OUT "ciclueuler.out"
#define maxx 10000

ifstream fin(IN);
ofstream fout(OUT);

int n,m;
int nc;
int g[maxx][maxx];
int c[maxx];

void citire();
void afis();
void euler(int nod);

int main()
{
 citire();
  fin.close();
  
 fout<<1<<" "; 
 euler(1);
 
 afis();
  fout.close();    
return 0;
}

void citire()
{
 int i;
 int x,y;
     
 fin>>n>>m;
     
 for(i=1;i<=m;i++)
 {
  fin>>x;
  fin>>y;
  g[x][y]=1;
  g[y][x]=1;
 }
}

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;
}

void afis()
{
 int i;
 
 for(i=1;i<nc;i++)
  fout<<c[i]<<" ";
}