Pagini recente » Cod sursa (job #1990575) | Cod sursa (job #711703) | Cod sursa (job #2086691) | Cod sursa (job #2306465) | Cod sursa (job #3304729)
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream cin("hamilton.in");
ofstream cout("hamilton.out");
int n,m, a,b,c;
vector<pair<int,int>> v[20];
vector<int> sol;
int ans;
bool seen[20];
void dfs(int nod){
seen[nod]=1;
sol.push_back(nod);
for(auto vecin: v[nod]){
int cost=vecin.first, ne=vecin.second;
if(ne==0){
ans+=cost;
cout<<ans;
exit(0);
}
if(!seen[ne]) {
ans+=cost;
dfs(ne);
ans-=cost;
}
}
seen[nod]=0;
sol.pop_back();
}
int main() {
cin>>n>>m;
while(m--){
cin>>a>>b>>c;
v[a].push_back({c,b});
}
for(int i=0; i<n;i++)
sort(v[i].begin(), v[i].end());
dfs(0);
cout<<"Nu exista solutie";
return 0;
}