Pagini recente » Cod sursa (job #120105) | Cod sursa (job #590521) | Cod sursa (job #428109) | Cod sursa (job #2861080) | Cod sursa (job #729781)
Cod sursa(job #729781)
#include <vector>
#include <queue>
#include <cstdio>
#include <algorithm>
#define N 100001
using namespace std;
vector<int> graph[N];
vector<int> euler_cycle;
int n;
void euler(int v) {
while (graph[v].size() > 0) {
int w = graph[v].back();
graph[v].pop_back();
vector<int>::iterator it = find(graph[w].begin(), graph[w].end(), v);
graph[w].erase(it);
euler(w);
}
euler_cycle.push_back(v);
}
int main() {
freopen("ciclueuler.in", "r", stdin);
freopen("ciclueuler.out", "w", stdout);
int m;
scanf("%d %d", &n, &m);
for (int i = 0; i < m; i++) {
int x, y;
scanf("%d %d ", &x, &y);
graph[x - 1].push_back(y - 1);
graph[y - 1].push_back(x - 1);
}
euler(0);
for (vector<int>::iterator i = euler_cycle.begin(); (i + 1) != euler_cycle.end(); i++) {
printf("%d ", *i + 1);
}
printf("\n");
return 0;
}