#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define INF 1000000000 using namespace std; typedef long long ll; const int HANSHIN = 334; valarray q[HANSHIN]; valarray p(3); double getDist(valarraya, valarrayb, valarrayc, valarray d) { auto P = c-b; auto Q = d-b; valarray R(3); R[0] = P[1]*Q[2] - Q[1]*P[2]; R[1] = P[2]*Q[0] - Q[2]*P[0]; R[2] = P[0]*Q[1] - Q[0]*P[1]; double normal = sqrt(R[0]*R[0] + R[1]*R[1] + R[2]*R[2]); for (int i = 0; i < 3; i++) R[i] /= normal; a -= b; return abs(R[0]*a[0] + R[1]*a[1] + R[2]*a[2]); } int main(void) { for (int i = 0; i < HANSHIN; i++) { q[i].resize(3); } int N; cin >> N; cin >> p[0] >> p[1] >> p[2]; for (int i = 0; i < N; i++) { cin >> q[i][0] >> q[i][1] >> q[i][2]; } double ans = 0; for (int i = 0; i < N; i++) { for (int j = i+1; j < N; j++) { for (int k = j+1; k < N; k++) { ans += getDist(p, q[i], q[j], q[k]); } } } printf("%.10lf\n", ans); return 0; }