Pagini recente » Cod sursa (job #2761684) | Cod sursa (job #3136780) | Cod sursa (job #2494265) | Cod sursa (job #3292817) | Cod sursa (job #2388196)
#include <fstream>
#include <vector>
using namespace std;
ifstream fi ("ciclueuler.in");
ofstream fo ("ciclueuler.out");
vector<pair<int,int>> v[100005];
int idx[100005],viz[500006];
int nrnod,nrmuchii;
void dfs(int nod,int lvl)
{
for (int i=0;i<v[nod].size();i++)
{
if (viz[v[nod][i].second]) continue;
viz[v[nod][i].second]=1;
int nextnod=v[nod][i].first;
dfs(nextnod,lvl+1);
}
if (lvl) fo<<nod<<' ';
}
int main()
{
fi>>nrnod>>nrmuchii;
for (int i=1;i<=nrmuchii;i++)
{
int x,y;
fi>>x>>y;
v[x].push_back(make_pair(y,i));
v[y].push_back(make_pair(x,i));
}
for (int i=1;i<=nrnod;i++)
if (v[i].size()%2==1)
{
fo<<-1;
return 0;
}
dfs(1,0);
return 0;
}