Pagini recente » Cod sursa (job #217042) | Cod sursa (job #1275000) | Cod sursa (job #2387341) | Cod sursa (job #5722) | Cod sursa (job #1552278)
#include <cstdio>
#include <vector>
#include <algorithm>
#include <vector>
using namespace std;
int N, M;
vector<int> con[100001];
int x, y;
void do_the_thing(int nod) {
vector<int> rez;
int i, u, uprev;
bool k = true;
u = nod;
while(u != nod || k) {
k = false;
rez.push_back(u);
uprev = u;
u = con[u].back();
con[uprev].pop_back();
con[u].erase(find(con[u].begin(), con[u].end(), uprev));
}
for(i = 0; i < rez.size(); i++) {
while(con[rez[i]].size() > 0)
do_the_thing(rez[i]);
printf("%d ", rez[i]);
}
}
int main() {
int i, j;
freopen("ciclueuler.in", "r", stdin);
freopen("ciclueuler.out", "w", stdout);
scanf("%d %d", &N, &M);
for(i = 0; i < M; i++) {
scanf("%d %d", &x, &y);
con[x].push_back(y);
con[y].push_back(x);
}
do_the_thing(1);
return 0;
}