Pagini recente » Cod sursa (job #2606145) | Cod sursa (job #2234454) | Cod sursa (job #2298312) | Cod sursa (job #1402542) | Cod sursa (job #2538403)
#include <bits/stdc++.h>
const int MAX_N = 100000;
const int MAX_M = 500000;
using namespace std;
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
int n, m;
int st[MAX_M + 5];
list<int>G[MAX_N + 5];
int main() {
fin >> n >> m;
for (int i = 1; i <= m; i++) {
int u, v;
fin >> u >> v;
G[u].push_back(v);
G[v].push_back(u);
}
for (int i = 1; i <= n; i++)
if (G[i].size() % 2 == 1) {
fout << -1 << '\n';
return 0;
}
int top = 1; st[top] = 1;
while (top > 0) {
int u = st[top];
while (!G[u].empty()) {
int v = G[u].front();
G[u].pop_front();
G[v].erase(find(G[v].begin(), G[v].end(), u));
top++;
st[top] = v;
u = v;
}
fout << st[top] << ' ';
top--;
}
return 0;
}