結果
| 問題 | No.132 点と平面との距離 | 
| コンテスト | |
| ユーザー |  rlangevin | 
| 提出日時 | 2023-10-10 12:07:37 | 
| 言語 | PyPy3 (7.3.15) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 379 ms / 5,000 ms | 
| コード長 | 772 bytes | 
| コンパイル時間 | 514 ms | 
| コンパイル使用メモリ | 82,292 KB | 
| 実行使用メモリ | 76,404 KB | 
| 最終ジャッジ日時 | 2024-09-13 00:17:02 | 
| 合計ジャッジ時間 | 1,632 ms | 
| ジャッジサーバーID (参考情報) | judge3 / judge1 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 3 | 
ソースコード
N = int(input())
px, py, pz = map(float, input().split())
X, Y, Z = [0] * N, [0] * N, [0] * N
for i in range(N):
    X[i], Y[i], Z[i] = map(float, input().split())
def plane(i, j, k):
    abx = X[j] - X[i]
    aby = Y[j] - Y[i]
    abz = Z[j] - Z[i]
    acx = X[k] - X[i]
    acy = Y[k] - Y[i]
    acz = Z[k] - Z[i]
    a = aby * acz - abz * acy
    b = abz * acx - abx * acz
    c = abx * acy - aby * acx
    d = -a * X[i] - b * Y[i] - c * Z[i]
    return a, b, c, d
def solve(a, b, c, d, x, y, z):
    return abs(a * x + b * y + c * z + d)/(a ** 2 + b ** 2 + c ** 2)**0.5
ans = 0
for i in range(N):
    for j in range(i + 1, N):
        for k in range(j + 1, N):
            a, b, c, d = plane(i, j, k)
            ans += solve(a, b, c, d, px, py, pz)
print(ans)
            
            
            
        