Pagini recente » Cod sursa (job #567548) | Cod sursa (job #1778471) | Cod sursa (job #816103) | Cod sursa (job #67478) | Cod sursa (job #503667)
Cod sursa(job #503667)
#include <stdio.h>
#include <set>
using namespace std;
multiset<int> copac[100002];
int i,n,N,M,sol[500002],x,y;
void euler(int nod)
{
int x;
multiset<int>::iterator it,jt,ht;
it=copac[nod].begin();
while(it!=copac[nod].end())
{
if(it!=copac[nod].end())
{
x=*it;
jt=copac[x].find(nod);
if(jt!=copac[x].end()) copac[x].erase(jt);
copac[nod].erase(copac[nod].begin());
euler(x);
}
it=copac[nod].begin();
}
sol[++n]=nod;
}
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);
copac[x].insert(y);
copac[y].insert(x);
}
n=0;
euler(1);
for(i=2;i<n;i++)
printf("%d ",sol[i]);
printf("%d\n",sol[n]);
return 0;
}