Pagini recente » Cod sursa (job #951980) | Cod sursa (job #2280054) | Cod sursa (job #2820358) | Cod sursa (job #389124) | Cod sursa (job #192019)
Cod sursa(job #192019)
#include<stdio.h>
long n,m,i,j,poz[100],*vec[100],gr[100], viz[100],a,b,h[100],ultim,ok;
int main()
{ freopen("hamilton.in","rt",stdin); freopen("hamilton.out","wt",stdout);
//n,m,gr[n],*vec[n],viz[n],h[n]
scanf("%ld%ld",&n,&m);
for(i=1;i<=m;i++)
{ scanf("%ld%ld",&a,&b); gr[a]++; gr[b]++;}
freopen("hamilton.in","rt",stdin);
scanf("%ld%ld",&n,&m);
for(i=1;i<=n;i++){ vec[i]=new long[gr[i]+2]; gr[i]=0;}
for(i=1;i<=m;i++){ scanf("%ld%ld",&a,&b);
vec[a][++gr[a]]=b;
vec[b][++gr[b]]=a;
}
for(i=1;i<=n;i++)
{ h[1]=i; viz[i]=1; ultim=1; poz[1]=1;
while(ultim<n&&ultim)
{ if(poz[ultim]==gr[h[ultim]]+1)
{ viz[h[ultim]]=0; ultim--;poz[ultim]++; continue;}
if(viz[vec[h[ultim]][poz[ultim]]])
{ poz[ultim]++; continue;}
h[ultim+1]=vec[h[ultim]][poz[ultim]];
ultim++; poz[ultim]=1; viz[h[ultim]]=1;
}
if(ultim==n)
{ ok=1; break;}
}
for(i=1;i<=n;i++) printf("%ld ",h[i]);
return 0;
}