Pagini recente » Cod sursa (job #1210834) | Cod sursa (job #112667) | Cod sursa (job #2584246) | Cod sursa (job #2226081) | Cod sursa (job #487897)
Cod sursa(job #487897)
#include <cstdio>
#include <vector>
#define N 100000000
using namespace std;
vector <int> v[20],c[20];
int ok[1004],n;
int rez(int k,int l)
{
int sol=N,q;
if ((k==0) && (l==n+1)) return 0;
ok[k]=1;ok[0]=0;
vector<int>::iterator it,it2;
for (it=v[k].begin(),it2=c[k].begin();it!=v[k].end();++it,++it2)
if (!ok[*it])
{ q=rez(*it,l+1)+*it2;
if (q<sol) sol=q;
}
ok[k]=0;
return sol;
}
int main()
{
int i,a,b,cost,m;
freopen("hamilton.in","r",stdin);
freopen("hamilton.out","w",stdout);
scanf("%d %d",&n,&m);
for (i=m;i>0;--i)
{
scanf("%d %d %d",&a,&b,&cost);
v[a].push_back(b);c[a].push_back(cost);}
printf("%d",rez(0,1));
return 0;}