Pagini recente » Cod sursa (job #3253099) | Cod sursa (job #3220336) | Cod sursa (job #3242042) | Cod sursa (job #1160349) | Cod sursa (job #1842122)
#include<bits/stdc++.h>
using namespace std;
ifstream in("hamilton.in");
ofstream out("hamilton.out");
const int INF = 0x3f3f3f3f;
int a[18][18];
int d[18][(1<<18)];
int n,m;
int main(){
in>>n>>m;
for(int i=1;i<=m;i++){
int x,y,c;
in>>x>>y>>c;
a[x][y]=c;
}
int ans = INF;
for(int k=0;k<n;k++)
for(int i=0;i<(1<<n);i++)
d[k][i]=INF;
d[0][1]=0;
for(int i=0;i<(1<<n);i++){
for(int e=0;e<n;e++) if(i&(1<<e)){
for(int f=0;f<n;f++) if(f!=e && i&(1<<f) && a[f][e]!=0){
d[e][i] = min(d[e][i], d[f][i^(1<<e)] + a[f][e] );
}
}
}
for(int i=0;i<n;i++) if(a[i][0])
ans = min(ans, d[i][(1<<n)-1] + a[i][0] );
if(ans == INF) out<<"Nu exista solutie\n";
else out<<ans<<'\n';
return 0;
}