Cod sursa(job #249839)

Utilizator StigmaSimina Pitur Stigma Data 29 ianuarie 2009 13:16:25
Problema Ciclu Eulerian Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <iostream.h>
#include <fstream.h>


ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");

int a[100000][100000],n,m,nr,c[500000];


void euler(int nod)
{int i;
for (i=1;i<=n;i++)
 if (a[nod][i]!=0)
  {a[nod][i]--;
   a[i][nod]--;
   euler(i);
   }

nr++;
c[nr]=nod;
}




int main()
{int i,x,y;

 fin>>n>>m;
 for (i=1;i<=m;i++)
  {fin>>x>>y;
   a[x][y]+=1;
   a[y][x]+=1;
  }

euler(1);

if (nr<m || a[c[nr]][c[1]]) fout<<-1;
else
for (i=1;i<=m;i++)
fout<<c[i]<<" ";

fout.close();
return 0;
}