Cod sursa(job #2678221)

Utilizator NeacsuMihaiNeacsu Mihai NeacsuMihai Data 28 noiembrie 2020 11:14:32
Problema Ciclu Eulerian Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

ifstream fin ("ciclueuler.in");
ofstream fout ("ciclueuler.out");
vector<pair<int, int>>v[100001];
bool viz[100001];
int k;
void ciclu(int x)
{
    while(!v[x].empty())
    {
        int p=v[x].back().second;
        int vecin=v[x].back().first;
        v[x].pop_back();
        if(!viz[p])
        {
            viz[p]=1;
            ciclu(vecin);
        }
    }
    if(x!=1)fout<<x<<' ';
}
int main()
{
    int n, m;
    int i, x, y;
    fin>>n>>m;
    for(i=1; i<=m; i++)
    {
        fin>>x>>y;
        v[x].push_back({y, i});
        v[y].push_back({x, i});
    }
    for(i=1; i<=n; i++)
    {
        if(v[i].size()%2==1) {fout<<-1; return 0;};
    }
    fout<<1<<' ';ciclu(1);
}