#include #include #include #include #include #include #define REP(i,n) for(int i=0;i<(int)n;++i) #define FOR(i,c) for(__typeof((c).begin())i=(c).begin();i!=(c).end();++i) #define ALL(c) (c).begin(), (c).end() #define INF 99999999 using namespace std; typedef double Weight; typedef vector Array; typedef vector Matrix; const int M = 20; Weight best[1<= best[S][i] + time) { best[S|(1< >a(N+1); a[0].first=X,a[0].second=Y; for(int i=1;i<=N;i++){ dist[i].resize(N+1); scanf("%lf%lf%lf",&a[i].first,&a[i].second,&cost[i]); } for(int i=0;i<=N;i++)for(int j=0;j<=N;j++)dist[i][j]=fabs(a[i].first-a[j].first)+fabs(a[i].second-a[j].second); } printf("%f\n",shortestHamiltonPath(dist,cost)); }