Cod sursa(job #1375609)

Utilizator rockerboyHutter Vince rockerboy Data 5 martie 2015 13:44:39
Problema Ciclu Eulerian Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
#include <vector>
#include <list>

std::ifstream be ("ciclueuler.in");
std::ofstream ki ("ciclueuler.out");

int n, m;
std::vector< std::list<int> > x;
std::vector< int > kor;

void euler (int csp)
{
    int csp2;
    for (std::list<int>::iterator i=x[csp].begin(); i!=x[csp].end(); i++) {
        csp2 = *i;
        x[csp].erase(i);
        euler (csp2);
    }
    kor.push_back(csp);
}

int main()
{
    be >> n >> m;
    x.resize (n+1, std::list<int>(n+1));

    int a, b, i;
    for (i=0; i<m; i++) {
        be >> a >> b;
        x[a].push_back(b);
    }

    euler (1);

    for (std::vector<int>::reverse_iterator i=kor.rbegin(); i<kor.rend(); i++) ki << *i << " ";

    if (kor.size() == 0) ki << -1;
}