Cod sursa(job #2765908)

Utilizator Edyci123Bicu Codrut Eduard Edyci123 Data 30 iulie 2021 12:55:26
Problema Ciclu Eulerian Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <bits/stdc++.h>
#define PI pair <int, int>
#define NMAX 100005
#define MMAX 500005

using namespace std;

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

int n, m;
bitset <MMAX> v;
vector <PI> Muchii[NMAX];

void euler(int nod)
{
    while(!Muchii[nod].empty())
    {
        PI k = Muchii[nod].back();
        Muchii[nod].pop_back();
        if(!v[k.first])
        {
            v[k.first] = 1;
            euler(k.second);
        }
    }

    g << nod << " ";
}

int main()
{
    f >> n >> m ;

    for(int i = 1; i <= m; i++)
    {
        int x, y;
        f >> x >> y;
        Muchii[x].push_back(make_pair(i, y));
        Muchii[y].push_back(make_pair(i, x));
    }

    for(int i = 1; i <= n; i++)
        if(Muchii[i].size() % 2)
        {
            g << -1;
            return 0;
        }

    euler(1);
    return 0;
}