#include #include #include #include #include #include #include #include #include #include #include using namespace std; int n; double x[16], y[16], w[16]; double d[16][16]; double sw[1<<16], t[1<<16], dp[1<<16][16]; const double inf = 1e18; void chmin(double &a, double b) { a = min(a, b); } int main() { cin >> x[0] >> y[0]; cin >> n; for (int i = 1; i <= n; i++) cin >> x[i] >> y[i] >> w[i]; for (int i = 0; i <= n; i++) for (int j = 0; j <= n; j++) { d[i][j] = abs(x[i]-x[j]) + abs(y[i]-y[j]); //printf("d[%d][%d] = %lf\n", i, j, d[i][j]); } for (int i = 0; i <= n; i++) sw[0] += w[i]; for (int s = 0; s < (1<<(n+1)); s++) for (int i = 0; i <= n; i++) if (~s&(1<(s) << "] = " << sw[s] << endl; //for (int s = 0; s < (1<<(n+1)); s++) cout << "t[" << bitset<4>(s) << "] = " << t[s] << endl; for (int s = 0; s < (1<<16); s++) for (int v = 0; v < 16; v++) dp[s][v] = inf; dp[0][0] = 0; for (int s = 0; s < (1<<(n+1)); s++) for (int v = 0; v <= n; v++) { if (dp[s][v] == inf) continue; for (int u = 0; u <= n; u++) if (~s&(1<(s) << "][" << v << "] = " << dp[s][v] << endl; printf("%.10lf\n", dp[(1<<(n+1))-1][0]); }