Cod sursa(job #2399952)

Utilizator UnNaMeD22Sacrieriu Razvan UnNaMeD22 Data 8 aprilie 2019 10:58:58
Problema Ciclu Eulerian Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#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);
    }
}