Cod sursa(job #3304729)

Utilizator anca.gdDumitru Anca Gabriela anca.gd Data 26 iulie 2025 14:35:33
Problema Ciclu hamiltonian de cost minim Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#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;
}