Cod sursa(job #3167791)

Utilizator D4R1U5Sava Darius D4R1U5 Data 11 noiembrie 2023 09:25:59
Problema Ciclu Eulerian Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <bits/stdc++.h>

const int NMAX=100005;

using namespace std;

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

int n,m;
int i,a,b,nr;
bool t[5*NMAX];
vector<pair<int,int>> G[NMAX];
vector<int>ans;

static inline void dfs(int nod)
{
    for(auto it:G[nod])
    {
        if(t[it.second]==false)
        {
            t[it.second]=true;
            dfs(it.first);
        }
    }
    ans.push_back(nod);
}

int main()
{
    f.tie(NULL);
    f>>n>>m;
    for(i=1;i<=m;i++)
    {
        f>>a>>b;
        G[a].push_back(make_pair(b, i));
        G[b].push_back(make_pair(a, i));
    }
    for(i=1;i<=n;i++)
    {
        if(G[i].size()%2)
        {
            g<<-1<<'\n';
            return 0;
        }
    }
    dfs(1);
    for(i=0;i<int(ans.size())-1;i++) g<<ans[i]<<' ';
    return 0;
}