Pagini recente » Cod sursa (job #1893545) | Cod sursa (job #347532) | Cod sursa (job #426122) | Cod sursa (job #721724) | Cod sursa (job #2168369)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("hamilton.in");
ofstream out ("hamilton.out");
int n, m, s, a, b;
int x[20][20], st[20], sol=2000000000;
bool viz[20];
void DFS (int a, int nr, int s)
{
int i;
viz[a]=1;
if (nr==n && x[a][0])
{
if (sol>s+x[a][0])
sol=s+x[a][0];
}
else
{
for (i=0;i<n;i++)
if (!viz[i] && x[a][i])
DFS(i,nr+1,s+x[a][i]);
}
viz[a]=0;
}
int main()
{
f>>n>>m;
for (int i=1; i<=m; i++)
{
in>>a>>b;
in>>x[a][b];
}
DFS(0,1,0);
if (sol<2000000000)
out<<sol;
else
out<<"Nu exista solutie";
return 0;
}