Cod sursa(job #1920736)

Utilizator ardeleanadrianArdelean Adrian-Florin ardeleanadrian Data 10 martie 2017 09:40:59
Problema Ciclu Eulerian Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <iostream>
#include <fstream>
#define NMAX 210

using namespace std;

ifstream f ("euler.in");
ofstream g ("euler.out");

int a[NMAX][NMAX], answear[NMAX * NMAX], nrKnotsInAnswear, n, m;

int NextKnot(int nod)
{
    for (int i = 1; i <= n; i++)
        if (a[nod][i]) return i;
    return -1;
}

void Euler(int nod)
{
    int nodUrmator = NextKnot(nod);
    while(nodUrmator != -1)
    {
        a[nod][nodUrmator] = 0;
        a[nodUrmator][nod] = 0;
        Euler(nodUrmator);
        nodUrmator = NextKnot(nod);
    }
    nrKnotsInAnswear++;
    answear[nrKnotsInAnswear] = nod;
}

int main()
{
    f >> n >> m;
    int x, y;
    for(int i=1;i<=m;i++)
    {
        f>>x>>y;
        a[x][y]=a[y][x]=1;
    }
    Euler(1);
   // g << nrKnotsInAnswear << '\n';
    for (int i = 1; i <= nrKnotsInAnswear; i++)
        g << answear[i] << ' ';
    return 0;
}