Cod sursa(job #249841)
Utilizator | Simina Pitur Stigma | Data | 29 ianuarie 2009 13:20:36 |
---|---|---|---|
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[10000][10000],n,m,nr,c[50000];
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;
}