Pagini recente » Cod sursa (job #126330) | Cod sursa (job #893379) | Cod sursa (job #1968633) | Cod sursa (job #1005328) | Cod sursa (job #1982374)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("hamilton.in");
ofstream fout("hamilton.out");
const int NMax=18;
int N,M,A[NMax][NMax],minn=2000000000,S,V[NMax],Use[NMax];
void Read()
{
fin>>N>>M;
for(int i=1;i<=M;++i)
{
int x,y,z;
fin>>x>>y>>z;
A[x][y]=z;
}
}
void Hamilton(int i)
{
for(int j=0;j<=N-1;++j)
{
if((Use[j]==0 && A[V[i-1]][j]!=0))
{
V[i]=j;
Use[j]=1;
S=S+A[V[i-1]][j];
if(i==N && V[N]==0)
{
minn=min(minn,S);
}
Hamilton(i+1);
Use[j]=0;
S=S-A[V[i-1]][j];
}
}
}
int main()
{
Read();
Hamilton(1);
if (minn==2000000000)
fout<<"Nu exista solutie\n";
else
fout<<minn<<"\n";
return 0;
}