Cod sursa(job #3169537)

Utilizator Robert_MitriRobert Mitri Robert_Mitri Data 15 noiembrie 2023 11:57:32
Problema Ciclu Eulerian Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <fstream>
#include <vector>
#define nod_sz 100000
#define mch_sz 500000

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

struct muchie{
int x;
int ind;
};

vector <muchie> v[nod_sz+5];
bool viz[mch_sz+5];
int mk;
int gr[nod_sz+5];

vector <int> sol;
void dfs(int nod)
{
    for(auto& i : v[nod])
    {
        if(!viz[i.ind]){
            viz[i.ind]=true;
            dfs(i.x);
        }
    }
    sol.push_back(nod);
}


int n;
int main()
{
    fin>>n>>mk;
    for(int i=1;i<=mk;i++)
    {
        int x,y;
        fin>>x>>y;
        gr[x]++;
        gr[y]++;
        v[x].push_back({y,i});
        v[y].push_back({x,i});
    }
    for(int i=1;i<=n;i++)
        if(gr[i]%2)
    {
        fout<<-1;
        return 0;
    }
    dfs(1);
    sol.pop_back();
    for(auto& i : sol)
        fout<<i<<' ';
}