Pagini recente » Cod sursa (job #2305168) | Cod sursa (job #2764281) | Cod sursa (job #2330689) | Cod sursa (job #137307) | Cod sursa (job #2399931)
#include <fstream>
#define NMAX 1000
using namespace std;
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
///lista de adiacenta
int a[NMAX][NMAX];
///functii
void citire();
void afisare();
void DFS(int start);
///variabile
int n,i,j,nrv,m,x,y,inc,nrm;
//nrv este numarul de varfuri din vectorul sol
///vectori
int sol[NMAX];
int nrviz[NMAX];
int main()
{
citire();
inc=1;
DFS(1);
afisare();
return 0;
}
void citire()
{
fin>>n>>m;
for(i=1;i<=m;i++)
{
fin>>x>>y;
a[x][y]++;
a[y][x]++;
nrm+=2;
a[x][0]++;
a[y][0]++;
}
}
void afisare()
{
for(i=1;i<=nrv;i++)
fout<<sol[i]<<" ";
}
void DFS(int start)
{
sol[++nrv]=start;
for(i=1;i<=n;i++)
if(a[start][i])
{
a[start][i]--;
a[i][start]--;
if(i!=inc&&nrm!=1)
DFS(i);
}
}