Cod sursa(job #2534918)

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

void euler(long long 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<long long>[vf];
while(f>>x){
f>>y;
Adj[x-1].push_back(y-1);
Adj[y-1].push_back(x-1);
}

euler(0);

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