Pagini recente » Cod sursa (job #3243467) | Cod sursa (job #118649) | Cod sursa (job #2444961) | Cod sursa (job #15961) | Cod sursa (job #2679010)
#include <bits/stdc++.h>
#define MAX 100005
using namespace std;
ifstream in("ciclueuler.in");
ofstream out("ciclueuler.out");
deque < int > g[MAX];
vector < pair < int , int > > l;
bitset < MAX > c;
vector < int > sol;
int n, m, x, y;
void Euler(int k){
while(!g[k].empty()){
int nivel = g[k].back();
g[k].pop_back();
if(!c[nivel]){
c[nivel] = true;
int vec = l[nivel].second;
if(vec != k)
Euler(vec);
else
Euler(l[nivel].first);
}
}
sol.push_back(k);
}
int main(){
in>>n>>m;
while(m--){
in>>x>>y;
l.push_back({x, y});
g[x].push_back(l.size() - 1);
g[y].push_back(l.size() - 1);
}
Euler(1);
for(int i = 0; i < sol.size() - 1; i++)
out<<sol.at(i)<<" ";
}