Cod sursa(job #2722284)

Utilizator FastmateiMatei Mocanu Fastmatei Data 12 martie 2021 18:30:04
Problema Ciclu Eulerian Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <bits/stdc++.h>
#define oo 1999000000

using namespace std;

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

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

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

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