Pagini recente » Cod sursa (job #1757502) | Cod sursa (job #496551) | Cod sursa (job #160961) | Cod sursa (job #2860967) | Cod sursa (job #587834)
Cod sursa(job #587834)
#include<stdio.h>
#define INF 1000000000
long a[19][19]={{0}},lg[19]={0},lgmin=INF,d;
int n,v[19]={0},m,j,k;
long ham(int k,int j)
{int i;
if(k-1==n&&a[j][1]&&lg[n]+a[j][1]<lgmin)
return lg[n]+a[j][1];
for(i=2;i<=n;i++)
if(!v[i]&&a[j][i]&&(lg[k]=lg[k-1]+a[j][i])<lgmin)
{v[i]=1;
lgmin=ham(k+1,i);
v[i]=0;}
return lgmin;}
int main()
{freopen("hamilton.in","r",stdin);
freopen("hamilton.out","w",stdout);
scanf("%d%d",&n,&m);
while(m--)
{scanf("%d%d%ld",&j,&k,&d);
a[j+1][k+1]=d;}
if((lgmin=ham(2,1))==INF)
printf("Nu exista solutie");
else
printf("%ld",lgmin);
fclose(stdin);
fclose(stdout);
return 0;}