Pagini recente » Cod sursa (job #2480672) | Cod sursa (job #1232695) | Cod sursa (job #1054477) | Cod sursa (job #2109361) | Cod sursa (job #1008228)
#include <iostream>
#include <fstream>
#define infinit 1<<23
using namespace std;
int matrix[20][20],x[20],m,n,sMin=infinit,s=0;
bool parcurs[20];
ifstream in("hamilton.in");
ofstream out("hamilton.out");
void read()
{
int a,b,c;
in>>n>>m;
for(int i=1;i<=m;i++)
{
in>>a>>b>>c;
matrix[a][b]=c;
}
}
void test()
{
if(s<sMin)
{
sMin=s;
}
}
void bkt(int k)
{
if(k==n)
{
test();
}
else
{
for(int i=0;i<n;i++)
{
if(parcurs[i]==false && matrix[x[k-1]][i]!=0)
{
x[k]=i;
parcurs[i]=true;
s+=matrix[x[k-1]][i];
bkt(k+1);
parcurs[i]=false;
s-=matrix[x[k-1]][i];
}
}
}
}
void write()
{
if(sMin!=infinit)
{
out<<sMin;
}
else
{
out<<"Nu exista solutie";
}
}
int main()
{
read();
bkt(0);
write();
}