Pagini recente » Cod sursa (job #2948679) | Cod sursa (job #3148403) | Cod sursa (job #2053186) | Cod sursa (job #1535736) | Cod sursa (job #1481740)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("hamilton.in");
ofstream fout("hamilton.out");
#define MAXN 20
#define pb push_back
#define mp make_pair
#define v first
#define c second
int n, m, low=(1<<30), k, G2[MAXN][MAXN];
vector<int> G[MAXN];
int used[MAXN];
void dfs(int node, int cnt, int cost){
used[node]=1;
if(cnt==n){
k=G2[node][0];
if(k)
low=min(low, cost+k);
used[node]=0;;
}
for(auto vec : G[node])
if(!used[vec])
dfs(vec, cnt+1, cost+G2[node][vec]);
used[node]=0;
}
int main()
{
int x, y, z;
fin>>n>>m;
while(m--){
fin>>x>>y>>z;
G[x].pb(y);
G2[x][y]=z;
}
dfs(0, 1, 0);
low==(1<<30)?fout<<"Nu exista solutie":fout<<low;
return 0;
}