Pagini recente » Cod sursa (job #1813704) | Cod sursa (job #444510) | Cod sursa (job #2378662) | Cod sursa (job #1740783) | Cod sursa (job #394273)
Cod sursa(job #394273)
#include<fstream.h>
int sol[500100],ver[1000100],leg[1000100],pus[1000100],start[100100],q,k,st[500100];
int main()
{
int n,m,i,x,y,t;
ifstream f("ciclueuler.in");
ofstream g("ciclueuler.out");
f>>n>>m;
for(i=1;i<=m;i++)
{
f>>x>>y;
ver[++q]=y;
leg[q]=start[x];
start[x]=q;
ver[++q]=x;
leg[q]=start[y];
start[y]=q;
}
q=0;
st[++k]=1;
while(k)
{
t=start[st[k]];
if(t)
{
start[st[k]]=leg[t];
if(!pus[t])
{
pus[t]=1;
if(t%2)
pus[t+1]=1;
else
pus[t-1]=1;
st[++k]=ver[t];
}
}
else
sol[++q]=st[k--];
}
for(i=1;i<=2*m;i++)
if(!pus[i])
{
g<<"-1";
return 0;
}
for(i=1;i<q;i++)
g<<sol[i]<<' ';
return 0;
}