Pagini recente » Cod sursa (job #966512) | Cod sursa (job #873133) | Cod sursa (job #3170476) | Cod sursa (job #1563741) | Cod sursa (job #632629)
Cod sursa(job #632629)
#include <cstdio>
#include <algorithm>
#define N 19
#define mult 2000000000
using namespace std;
int n, m, a[N][N], minim = mult, suma;
bool viz[N];
void citire()
{
scanf ("%d %d ", &n, &m);
for (int i = 1; i <= 10; ++ i)
{
int x, y, c;
scanf ("%d %d %d ", &x, &y, &c);
a[x][y] = c;
}
}
bool vizitate()
{
for (int i = 1; i < n; ++ i)
if (viz[i] == 0)
return 0;
return 1;
}
void verif(int nod)
{
if (vizitate() && a[nod][0] > 0)
{
suma += a[nod][0];
minim = min (minim, suma);
suma -= a[nod][0];
return;
}
for (int j = 1; j <= n; ++ j)
if (!viz[j] && a[nod][j] > 0)
{
viz[j] = 1;
suma += a[nod][j];
verif (j);
suma -= a[nod][j];
viz[j] = 0;
}
}
int main()
{
freopen ("hamilton.in", "r", stdin);
freopen ("hamilton.out", "w", stdout);
citire();
verif (0);
if (minim != mult)
printf ("%d\n", minim);
else
printf ("Nu exista solutie\n");
return 0;
}