Cod sursa(job #2400014)

Utilizator CarausuMadalinaMadalina Carausu CarausuMadalina Data 8 aprilie 2019 11:31:51
Problema Ciclu Eulerian Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <fstream>
#define NMAX 1000
using namespace std;

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

void citire();
void parcurgere(int x);
void afisare();
struct lista {int y; bool uz;};
lista LA[NMAX][NMAX];
int start=1,nr=0;//nr elem din solutie
int sol[NMAX*NMAX];
int n,m;

int main()
{citire();
 parcurgere(start);
 afisare();
    return 0;
}
void citire()
{fin>>n>>m;
 int i,x,y;
 for(i=1;i<=m;i++)
    {fin>>x>>y;
     LA[x][0].y++;
     LA[x][LA[x][0].y].y=y;
     LA[y][0].y++;
     LA[y][LA[y][0].y].y=x;
    }
}
void parcurgere(int x)
{int i;
 nr++;
 sol[nr]=x;
 for(i=1;i<=LA[x][0].y;i++)//daca am muchie de la x la i si i nu e folosit
    if(LA[x][i].uz==0)
       {LA[x][i].uz=1;
        LA[i][x].uz=1;
       parcurgere(LA[x][i].y);
       }

}
void afisare()
{int i;
for(i=1;i<nr;i++)
    fout<<sol[i]<<' ';
}