Pagini recente » Cod sursa (job #1622049) | Cod sursa (job #3157995) | Cod sursa (job #726692) | Cod sursa (job #2970412) | Cod sursa (job #2214961)
#include <bits/stdc++.h>
#define pb push_back
using namespace std;
ifstream fin ("ciclueuler.in");
ofstream fout ("ciclueuler.out");
bool viz[500002];
vector<pair<int, int> >v[100002];
int n, m, x, y;
int a[500002], k;
void ciclu (int x) {
while (!v[x].empty()) {
int p = v[x].back().second;
int vecin = v[x].back().first;
v[x].pop_back();
if (!viz[p]) {viz[p] = 1; ciclu(vecin);}
}
a[++k] = x;
}
int main()
{
fin >> n >> m;
for (int i = 1; i <= m; i++) {
fin >> x >> y;
v[x].pb({y, i});
v[y].pb({x, i});
}
for (int i = 1; i <= n; i++)
if (v[i].size() % 2 != 0) {
fout << -1;
return 0;
}
ciclu(1);
for (int i = 1; i < k; i++)
fout << a[i] << " ";
return 0;
}