Pagini recente » Cod sursa (job #1696603) | Cod sursa (job #545769) | Cod sursa (job #852830) | Cod sursa (job #2324898) | Cod sursa (job #2220290)
#include <fstream>
#include<vector>
using namespace std;
ifstream f("ciclueuler.in");
ofstream g("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()
{
f >> n >> m;
for (int i = 1; i <= m; i++)
{
f >> 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 != 0)
{
g << -1;
return 0;
}
ciclu(1);
for (int i = 1; i < k; i++)
g << a[i] << " ";
return 0;
}