Pagini recente » Cod sursa (job #1752797) | Borderou de evaluare (job #2021569) | Cod sursa (job #48272) | Cod sursa (job #1393324) | Cod sursa (job #2635647)
#include<fstream>
#include<vector>
#include<algorithm>
#include<stack>
using namespace std;
ifstream cin ("ciclueuler.in");
ofstream cout ("ciclueuler.out");
struct ura{
int nod, muchie;
};
int k, viz[500005], st[100005];
vector <ura> v[100005];
void euler (int nod)
{
while (v[nod].size())
{
ura aux = v[nod].back();
v[nod].pop_back();
if (!viz[aux.muchie])
{
viz[aux.muchie] = 1;
euler(aux.nod);
}
}
st[++k] = nod;
}
int main ()
{
int n, m, i;
cin >> n >> m;
for (i = 1; i <= m; i++)
{
int x, y;
cin >> x >> y;
v[x].push_back({y, i});
v[y].push_back({x, i});
}
for (i = 1; i <= n; i++)
{
if (v[i].size() % 2)
{
cout << -1;
return 0;
}
}
k = 0;
euler(1);
for (i = 1; i < k; i++)
cout << st[i] <<" ";
return 0;
}