Pagini recente » Cod sursa (job #1802942) | Cod sursa (job #1176647) | Cod sursa (job #2028938) | Cod sursa (job #1930671) | Cod sursa (job #2631098)
#include <iostream>
#include <fstream>
#include <vector>
#include <set>
#include <deque>
using namespace std;
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
const int NMAX = 1e5+5;
const int MMAX = 5e5+5;
int n,m;
bool v[MMAX];
vector <pair<int ,int> >a[NMAX];
void dfs(int x)
{
while(a[x].size() and v[a[x].back().second])
a[x].pop_back();
for(auto i:a[x])
if(!v[i.second])
{
v[i.second]=true;
dfs(i.first);
}
fout << x << " ";
}
int main()
{
fin >> n >> m;
for(int i=1;i<=m;i++)
{
int x,y;
fin >> x >> y;
a[x].push_back({y,i});
a[y].push_back({x,i});
}
for(int i=1;i<=n;i++)
if(a[i].size()%2)
{
fout << -1;
return 0;
}
dfs(rand()%n + 1);
return 0;
}