Cod sursa(job #2534905)

Utilizator EltMenimTirisi Claudiu EltMenim Data 31 ianuarie 2020 08:48:28
Problema Ciclu Eulerian Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include<iostream>
#include<fstream>
#include<vector>
#include<list>
using namespace std;
ifstream f("ciclueuler.in");
ofstream o("ciclueuler.out");
int vf, x, y;
int v, n=0;
list<int>*Adj;
vector<int> cicle;
list<int>::iterator i;

int euler(int s){
while(!Adj[s].empty()){
v=Adj[s].front();
Adj[s].pop_front();
for(i=Adj[v].begin();i!=Adj[v].end();i++){
if((*i)==s){
Adj[v].erase(i);
break;
}
}
euler(v);
}
cicle.push_back(s+1);
n++;
}

int main(){
f>>vf>>x;
Adj=new list<int>[vf];
while(f>>x){
f>>y;
Adj[x-1].push_back(y-1);
Adj[y-1].push_back(x-1);
}

euler(0);
for(int i=0;i<n-1;i++){
o<<cicle[n-i-1]<<" ";
}
if(n==0) o<<-1;
}