Pagini recente » Cod sursa (job #1069340) | Cod sursa (job #2654480) | Cod sursa (job #1909182) | Cod sursa (job #807699) | Cod sursa (job #2399893)
#include <fstream>
#include <cstdlib>
#define NMAX 10000
using namespace std;
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
int n,m,nrviz;
int ma[NMAX][NMAX];
int sol[NMAX];
void citire();
void dfs_euler(int start);
int main()
{
citire();
dfs_euler(1);
int i,ok=0;
for(i=1;i<=nrviz;i++)
if(sol[i]!=0)
ok=1;
if(ok==0)
fout<<-1;
else
for(i=1;i<=nrviz;i++)
fout<<sol[i]<<' ';
return 0;
}
void citire()
{
int x,y;
int i;
fin>>n>>m;
for(i=1;i<=m;i++)
{
fin>>x>>y;
ma[x][y]++;
ma[y][x]++;
}
}
void dfs_euler(int start)
{
int i;
sol[++nrviz]=start;
for(i=1;i<=n;i++)
if(ma[start][i])
{
ma[start][i]--;
ma[i][start]--;
dfs_euler(i);
}
}