Pagini recente » abcdefghijklmnopqrstuvwxyz | Cod sursa (job #2469543) | Cod sursa (job #1040343) | Cod sursa (job #1057888) | Cod sursa (job #3155220)
#include <iostream>
#include <algorithm>
#include <fstream>
#include <vector>
#include <queue>
#include <climits>
using namespace std;
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
int n, m, x, y;
struct vec {
int x, ind;
};
vector<vec> v[100005];
int viz[100005];
void euler(int nod) {
for (auto el : v[nod]) {
if (!viz[el.ind]) {
viz[el.ind] = 1;
euler(el.x);
}
}
fout << nod << " ";
}
int main() {
fin >> n >> m;
for (int i = 1; i <= m; i++) {
fin >> 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 == 1) {
fout << -1;
return 0;
}
euler(1);
}