Pagini recente » Cod sursa (job #2086865) | Cod sursa (job #2544519) | Cod sursa (job #2062120) | Cod sursa (job #1942105) | Cod sursa (job #2541335)
#include <iostream>
#include <cstdio>
#include <algorithm>
#define NMAX 100000
using namespace std;
int n, m;
vector<int> v[NMAX + 5];
void dfs(int x, int ok) {
int y;
while(!v[x].empty()) {
y = v[x].back();
v[x].pop_back();
for(int i = 0; i < v[y].size(); i++)
if(v[y][i] == x) {
v[y].erase(v[y].begin() + i);
break;
}
dfs(y, 0);
}
if(!ok)
printf("%d ", x);
}
int main() {
freopen("ciclueuler.in", "r", stdin);
freopen("ciclueuler.out", "w", stdout);
int x, y;
scanf("%d %d", &n, &m);
for(int i = 1; i <= m; i++) {
scanf("%d %d", &x, &y);
v[x].push_back(y);
v[y].push_back(x);
}
for(int i = 1; i <= n; i++)
if(v[i].size() % 2 == 1) {
printf("-1");
return 0;
}
dfs(1, 1);
return 0;
}