Pagini recente » Cod sursa (job #186360) | Cod sursa (job #1076527) | Cod sursa (job #285413) | Cod sursa (job #64719) | Cod sursa (job #2559495)
#include <bits/stdc++.h>
#define N 500005
using namespace std;
bitset <N> seen;
array <vector <pair <int, int>>, N> G;
vector <int> S;
void DFS (int x) {
while (!G[x].empty()) { //SA NU STERGI AFGIDS89YUU7GIS89DHIU
auto curr=G[x].back();
G[x].pop_back();
if (!seen[curr.first])
seen[curr.first]=1,
DFS(curr.second);
}
S.push_back(x);
}
int main () {
ifstream fin ("ciclueuler.in");
ofstream fout ("ciclueuler.out");
int n, m, i, j, k;
fin >> n >> m;
for (k=0; k<m; k++) {
fin >> i >> j;
G[i].emplace_back(make_pair(k, j));
G[j].emplace_back(make_pair(k, i));
}
for (i=0; i<n; i++)
if (G[i].size()&1) {
fout << -1;
return 0;
}
DFS(i);
for (auto i:S)
fout << i << ' ';
return 0;
}