Cod sursa(job #2867068)

Utilizator FastmateiMatei Mocanu Fastmatei Data 10 martie 2022 10:39:55
Problema Ciclu Eulerian Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <bits/stdc++.h>
#define oo 5555555

using namespace std;

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

int A[500005];
int B[500005];
int n,m;
vector<int>v[100005];
int e[500005],len;
int viz[500005];

void Whiler(int x)
{
    for(auto w:v[x])
        if(viz[w]==0)
        {
            viz[w]=1;
            Whiler(A[w]+B[w]-x);
        }
    e[++len]=x;
}

int main()
{
    fin>>n>>m;
    for(int i=1;i<=m;i++)
    {
        int x,y;
        fin>>x>>y;
        A[i]=x;
        B[i]=y;
        v[x].push_back(i);
        v[y].push_back(i);
    }
    Whiler(1);
    for(int i=1;i<=m;i++)
        if(viz[i]==0)
        {
            fout<<"-1\n";
            return 0;
        }
    for(int i=1;i<=m;i++)
        fout<<e[i]<<" ";
    return 0;
}