Cod sursa(job #2813736)

Utilizator Ionut151Marcu Ionut Ionut151 Data 7 decembrie 2021 10:00:42
Problema Ciclu Eulerian Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <map>

using namespace std;

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

vector <pair<int,int> > v[100002];
int a[500001];
int r[500001];
int n,m;
int p;


void Euler(int k){
    while(!v[k].empty()){
        int x=v[k].back().first;
        int y=v[k].back().second;
        v[k].pop_back();
        if(a[y]==0)
        {
            a[y]=1;
            Euler(x);
        }
    }
    r[++p] = k;
}

int main(){
    in >> n >> m;
    for(int i=1;i<=m;i++){
        int x,y;
        in >> x >> y;
        v[x].push_back({y,i});
        v[y].push_back({x,i});
    }
    Euler(1);
    for(int i=1;i<=p;i++){
        out << r[i] << " ";
    }
    return 0;
}