Pagini recente » Cod sursa (job #2300715) | Cod sursa (job #2876966) | Cod sursa (job #2334075) | Cod sursa (job #1979957) | Cod sursa (job #1894824)
//var I 100p (citirea cu scan) iterativ cu stiva expl.
#include<cstdio>
#include<vector>
#include<deque>
using namespace std;
int n,m,x,y,i,j,nod,muchieij;
int gr[100003];
bool viz[500003];
vector<int>a[100003];
vector<int>muc[100001];
deque<int>st;
int main()
{ freopen("ciclueuler.in","r",stdin);
freopen("ciclueuler.out","w",stdout);
scanf("%d %d",&n,&m);
for(i=1;i<=m;i++)
{
scanf("%d %d",&x,&y);
a[x].push_back(y);
a[y].push_back(x);
muc[x].push_back(i);
muc[y].push_back(i);
gr[x]++;
gr[y]++;
}
for(i=1;i<=n;i++)
if(gr[i]%2==1)
{printf("-1"); return 0; }
st.push_back(1);
while(!st.empty())
{
i=st.back();
if(gr[i]==0)
{ printf("%d ",i); st.pop_back(); }
else
{
j=a[i].back();
muchieij=muc[i].back();
a[i].pop_back();
muc[i].pop_back();
if(viz[muchieij]==0)
{
viz[muchieij]=1;
st.push_back(j);
gr[i]--;
gr[j]--;
}
}
}
return 0;
}