Cod sursa(job #2765500)

Utilizator Edyci123Bicu Codrut Eduard Edyci123 Data 27 iulie 2021 13:08:02
Problema Ciclu Eulerian Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 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);
        }
    }

    if(nod > 1)
        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;
        }

    g << 1 << " ";
    euler(1);

    return 0;
}