Pagini recente » Cod sursa (job #917478) | Cod sursa (job #2484661) | Cod sursa (job #1588120) | Cod sursa (job #1225410) | Cod sursa (job #2168375)
#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()
{
in>>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;
}