Pagini recente » Cod sursa (job #349002) | cls11_oji_2017 | Cod sursa (job #2578447) | Cod sursa (job #512430) | Cod sursa (job #2767658)
#include <fstream>
#include <algorithm>
#include <vector>
#include <queue>
using namespace std;
ifstream cin("ciclueuler.in");
ofstream cout("ciclueuler.out");
int n, m, a, b;
vector<int> ans;
vector<pair<int,int>> g[100001];
int grad[100001], use[500001];
void dfs(int nod)
{
for (auto i : g[nod])
{
if (use[i.second]) continue;
use[i.second] = 1;
dfs(i.first);
ans.push_back(i.first);
}
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cin >> n >> m;
for (int i = 1; i <= m; i++)
{
cin >> a >> b;
g[a].push_back({ b, i });
g[b].push_back({ a, i });
grad[a]++;
grad[b]++;
}
for (int i = 1; i <= n; i++)
{
if (grad[i] % 2)
{
cout << "-1\n";
return 0;
}
}
dfs(1);
for (auto i : ans)
cout << i << ' ';
return 0;
}