Pagini recente » Cod sursa (job #98887) | Cod sursa (job #483294) | Cod sursa (job #2192954) | Cod sursa (job #2269563) | Cod sursa (job #2534905)
#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;
}