Pagini recente » Cod sursa (job #2701303) | Cod sursa (job #3263632) | Cod sursa (job #3272070) | Cod sursa (job #887820) | Cod sursa (job #429866)
Cod sursa(job #429866)
#include <algorithm>
using namespace std;
#define INF 0x3f3f3f3f
#define DIM 20
int best[1<<DIM][DIM];
int cost[DIM][DIM];
int n,m,cst;
void read ()
{
int i,x,y;
memset (cost,INF,sizeof (cost));
scanf ("%d%d",&n,&m);
for (i=1; i<=m; ++i)
{
scanf ("%d%d",&x,&y);
scanf ("%d",&cost[x][y]);
}
}
void solve ()
{
int i,j,k;
memset (best,INF,sizeof (best));
best[1][0]=0;
for (i=0; i<(1<<n); ++i)
for (j=0; j<n; ++j)
if (i&(1<<j))
for (k=0; k<n; ++k)
if (i&(1<<k))
best[i][j]=min (best[i][j],best[i^(1<<j)][k]+cost[k][j]);
cst=INF;
for (i=0; i<n; ++i)
cst=min (cst,best[(1<<n)-1][i]+cost[i][0]);
printf ("%d",cst);
}
int main ()
{
freopen ("hamilton.in","r",stdin);
freopen ("hamilton.out","w",stdout);
read ();
solve ();
return 0;
}