Pagini recente » Cod sursa (job #1056689) | Cod sursa (job #3200317) | Cod sursa (job #432231) | Cod sursa (job #1020100) | Cod sursa (job #2606483)
#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);
fout<<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();
continue;
}
fout<<v[nod].back().first<<' ';
s.push(v[nod].back().first);
viz[v[nod].back().second]=1;
v[nod].pop_back();
}
}