Cod sursa(job #2802707)

Utilizator IoanMihaiIoan Mihai IoanMihai Data 18 noiembrie 2021 18:01:48
Problema Ciclu Eulerian Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
int n, m, x, y, nc, a[10005][10005], c[100005];
void euler(int nod)
{
    int urm;
    for (urm = 1;urm <= n;urm++){
        if (a[nod][urm] > 0){
            a[nod][urm] = 0;
            a[urm][nod] = 0;
            euler(urm);
        }
    }
    c[++nc] = nod;
}
int main() {
    fin >> n >> m;
    for (int i=1;i<=m;i++){
        fin >> x >> y;
        a[x][y] ++;
        a[y][x] ++;
    }

    euler(1);

    if (nc < m - 1){
        fout << -1 << '\n';
        return 0;
    }

    for (int i=nc;i>=1;i--)
        fout << c[i] << ' ';
    return 0;
}