Pagini recente » Cod sursa (job #699752) | Cod sursa (job #2214793) | Cod sursa (job #807668) | Cod sursa (job #2344420) | Cod sursa (job #2606487)
#include<bits/stdc++.h>
#define pb push_back
using namespace std;
const int DN=101005;
const int DM=501005;
int n,m,f,g,viz[DM];
vector<pair<int,int> >v[DN];
stack<int>s;
int main()
{
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
fin>>n>>m;
for(int i=1;i<=m;i++)
{
fin>>f>>g;
v[f].pb({g,i});
v[g].pb({f,i});
}
for(int i=1;i<=n;i++)
if(v[i].size()%2==1)
{
fout<<-1;
return 0;
}
s.push(1);
while(!s.empty())
{
int nod=s.top();
while(v[nod].size()&&viz[v[nod].back().second])
v[nod].pop_back();
if(v[nod].size()==0)
{
s.pop();
fout<<nod<<' ';
continue;
}
//fout<<v[nod].back().first<<' ';
s.push(v[nod].back().first);
viz[v[nod].back().second]=1;
v[nod].pop_back();
}
}