Cod sursa(job #2723176)

Utilizator Arsene_DenisaArsene Denisa Arsene_Denisa Data 13 martie 2021 18:58:21
Problema Ciclu Eulerian Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <iostream>
#include<vector>
#include<fstream>
using namespace std;
vector<int>v[100001];
vector<int>r;
bool viz[500001];
int x[500001], y[500001];
void euler(int nod) {
    while(v[nod].size()){
      int muc=v[nod].back();
      v[nod].pop_back();
      if(viz[muc]==0) {
        viz[muc]=1;
        int vec;
        if(x[muc]==nod) {
            vec=y[muc];
        }
        else {
            vec=x[muc];
        }
        euler(vec);
      }
    }
    r.push_back(nod);
}
int main(){
    int i, n, m;

    ifstream fin("ciclueuler.in");
    ofstream fout("ciclueuler.out");
    fin>>n>>m;
    for(i=1;i<=m;i++) {
        fin>>x[i]>>y[i];
        v[x[i]].push_back(i);
        v[y[i]].push_back(i);
    }
    euler(1);
    for(i=0;i<r.size()-1;i++) {
        fout<<r[i]<<" ";
    }
    return 0;
}