Pagini recente » Cod sursa (job #2206892) | Cod sursa (job #1239077) | Cod sursa (job #83238) | Cod sursa (job #2487137)
#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,muchii[500005],viz[500005],st[100005];
vector <ura> v[100005];
void euler (int nod)
{
ura aux;
while (v[nod].size())
{
aux=v[nod].back();
v[nod].pop_back();
if (viz[aux.muchie]==0)
{
viz[aux.muchie]=1;
euler(aux.nod);
}
}
st[++k]=nod;
}
int main ()
{
int n,m,n1,n2,i;
cin>>n>>m;
for (i=1;i<=m;i++)
{
cin>>n1>>n2;
ura aux;
aux.nod=n2;
aux.muchie=i;
v[n1].push_back(aux);
aux.nod=n1;
v[n2].push_back(aux);
}
for (i=1;i<=n;i++)
{
if (v[i].size() %2==1)
{
cout<<-1;
return 0;
}
}
euler(1);
for (i=1;i<k;i++)
cout<<st[i]<<" ";
return 0;
}