Pagini recente » Cod sursa (job #2255642) | Cod sursa (job #2226247) | Cod sursa (job #1379928) | Cod sursa (job #1243367) | Cod sursa (job #2442298)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("ciclueuler.in");
ofstream cout("ciclueuler.out");
vector <int> v[100001];
bool viz[500001];
int sum[500001];
int stiva[100001],vf;
void ciclu(int nod){
while(!v[nod].empty()){
int muchie = v[nod].back();
v[nod].pop_back();
if(viz[muchie] == 0){
viz[muchie] = 1;
ciclu(sum[muchie] - nod);
}
}
stiva[++vf] = nod;
}
int main()
{
int x,y,i,n,m;
cin >> n >> m;
for(i = 1;i <= m;i++){
cin >> x >> y;
sum[i] = x + y;
v[x].push_back(i);
v[y].push_back(i);
}
for(i = 1;i <= n;i++){
int grad = v[i].size();
if(grad % 2 == 1)
{
cout << -1;
return 0;
}
}
ciclu(1);
for(i = 1;i < vf;i++)
cout << stiva[i] << " ";
return 0;
}