Pagini recente » Cod sursa (job #2539046) | Cod sursa (job #1092070) | Cod sursa (job #1361988) | Cod sursa (job #3001354) | Cod sursa (job #2559553)
#include <bits/stdc++.h>
#define MAX 500005
using namespace std;
bitset <MAX> seen;
array <vector <pair <int, int>>, N> G;
vector <int> S;
void DFS (int x) {
while (!G[x].empty()) {
auto save=G[x].back();
G[x].pop_back();
if (!seen[save.first])
seen[save.first]=1,
DFS(save.second);
}
S.emplace_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=1; i<=n; i++)
if (G[i].size()&1) {
fout << -1;
return 0;
}
DFS(1);
for (auto i:S)
fout << i << ' ';
return 0;
}