#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair i_i; typedef pair ll_i; typedef pair d_i; typedef pair ll_ll; typedef pair d_d; struct edge { int u, v; ll w; }; ll MOD = 1000000007; ll _MOD = 1000000009; double EPS = 1e-10; int X[14], Y[14]; double W[14]; int main() { cin >> X[0] >> Y[0]; int N; cin >> N; N++; for (int i = 1; i < N; i++) cin >> X[i] >> Y[i] >> W[i]; vector< vector > dp(1 << N, vector(N, DBL_MAX)); dp[0][0] = 0; for (int S = 0; S < (1 << N); S++) { double w = 0; for (int i = 0; i < N; i++) if (!(S & (1 << i))) w += W[i]; for (int i = 0; i < N; i++) for (int j = 0; j < N; j++) { double l = abs(X[i] - X[j]) + abs(Y[i] - Y[j]); double t = l * (w + 100) / 120 + W[j]; dp[S | (1 << j)][j] = min(dp[S | (1 << j)][j], dp[S][i] + t); } } printf("%.10f\n", dp[(1 << N) - 1][0]); }