Cod sursa(job #2734076)

Utilizator ZahaZaharie Stefan Zaha Data 31 martie 2021 12:47:15
Problema Ciclu Eulerian Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <bits/stdc++.h>
using namespace std;

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

const int N = 5e5 + 7;
vector<int> graph[N];
queue<int> ans;

void euler(int node) {
    while (!graph[node].empty()) {
        int child = graph[node].back();
        graph[node].pop_back();
        euler(child);
    }
    ans.emplace(node);
}

int main() {
    int n, m;
    fin >> n >> m;

    for (int i = 1; i <= m; ++i) {
        int x, y;
        fin >> x >> y;
        graph[x].emplace_back(y);
    }

    for (int i = 1; i <= n; ++i)
        if (graph[i].size() & 1) {
            fout << "-1";
            return 0;
        }

    euler(1);

    while (!ans.empty()) {
        fout << ans.front() << " ";
        ans.pop();
    }

    return 0;
}