Pagini recente » Cod sursa (job #2472460) | Cod sursa (job #1165316) | Cod sursa (job #2375429) | Cod sursa (job #220460) | Cod sursa (job #2856991)
#include <bits/stdc++.h>
using namespace std;
#ifdef LOCAL
ifstream in("in.in");
ofstream out("out.out");
#else
ifstream in("ciclu.in");
ofstream out("ciclu.out");
#endif
vector<int> sol,viz;
int n,m;
vector<vector<pair<int,int>>> g;
void eulerCycle(int node) {
for (auto k : g[node]) {
if (viz[k.second] == 0) {
viz[k.second] = 1;
eulerCycle(k.first);
}
}
sol.push_back(node);
}
int main() {
in >> n >> m;
g.resize(n + 1);
viz.resize(m + 1);
for (int i =1 ; i <= m; i++) {
int u,v;
in >> u >> v;
g[u].push_back({v,i});
g[v].push_back({u,i});
}
for (int i = 1; i <= n; i++) {
if (g[i].size() % 2 == 1) {
out << "-1\n";
return 0;
}
}
eulerCycle(1);
sol.pop_back();
for (auto k : sol) {
out << k << " ";
}
out << "\n";
}