Pagini recente » Cod sursa (job #2943734) | Cod sursa (job #45737) | Cod sursa (job #107307) | Cod sursa (job #529715) | Cod sursa (job #2082762)
#include<fstream>
#include<cstring>
#define INF 17000000
using namespace std;
ifstream f("hamilton.in");
ofstream g("hamilton.out");
int N,M,x,y,c,Cost[18][18],C[18][1<<18];
int main()
{
f>>N>>M;
while(M--){
f>>x>>y>>c;
Cost[x][y]=c;
}
memset(C,INF,sizeof(C));
C[0][1]=0;
for(int k=1;k<(1<<N);++k)
for(int i=0;i<N;++i)
if(k&(1<<i))
for(int j=0;j<N;++j)
if(Cost[i][j]>0 && !(k&(1<<j)))
C[j][k|(1<<j)]=min(C[j][k|(1<<j)],C[i][k]+Cost[i][j]);
int SOL=INF;
for(int i=0;i<N;++i)
if(Cost[i][0])
SOL=min(SOL,C[i][(1<<N)-1]+Cost[i][0]);
if(SOL>=INF)g<<"Nu exista solutie";
else g<<SOL;
return 0;
}