Cod sursa(job #2152164)

Utilizator osiaccrCristian Osiac osiaccr Data 5 martie 2018 12:08:04
Problema Ciclu Eulerian Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>
#include <vector>
#define DEFN 100010
#define DEFM 500010

using namespace std;

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

vector < pair < int, int > > L[DEFN];

int n, m;

bool M[DEFM];

vector < int > Sol;

void dfs (int v) {
    for (int i = 0; i < L[v].size (); ++ i) {
        pair < int, int > u = L[v][i];
        if (M[u.second] == 0) {
            M[u.second] = 1;
            dfs (u.first);
        }
    }
    Sol.push_back (v);
}

int main () {
    fin >> n >> m;
    for (int i = 1; i <= m; ++ i) {
        int x, y;
        fin >> x >> y;
        L[x].push_back (make_pair (y, i));
        L[y].push_back (make_pair (x, i));
    }

    dfs (1);

    for (int i = 0; i < Sol.size (); ++ i) {
        fout << Sol[i] << " ";
    }

    return 0;
}