Pagini recente » Cod sursa (job #2323798) | Cod sursa (job #1307007) | Cod sursa (job #224018) | Cod sursa (job #860574) | Cod sursa (job #3302333)
#include <bits/stdc++.h>
using namespace std;
int n, m;
vector<pair<int, int>> v[100001];
bool mt[500001];
stack<int> ans;
void dfs(int node) {
for (int i = 0; i < v[node].size(); ++i) {
if (mt[v[node][i].second] == 0) {
mt[v[node][i].second] = 1;
dfs(v[node][i].first);
}
}
ans.push(node);
}
int main() {
ifstream cin("ciclueuler.in");
ofstream cout("ciclueuler.out");
cin >> n >> m;
for (int i = 1; i <= m; ++i) {
int x, y;
cin >> x >> y;
v[x].push_back({y, i});
v[y].push_back({x, i});
}
for (int i = 1; i <= n; ++i) {
if (v[i].size() % 2 != 0) {
cout << -1;
return 0;
}
}
dfs(1);
while (ans.size() != 1) {
cout << ans.top() << " ";
ans.pop();
}
}