結果

問題 No.132 点と平面との距離
ユーザー tktk_snsntktk_snsn
提出日時 2021-04-24 19:28:07
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 917 bytes
コンパイル時間 614 ms
コンパイル使用メモリ 82,784 KB
実行使用メモリ 77,568 KB
最終ジャッジ日時 2024-07-04 09:11:25
合計ジャッジ時間 7,369 ms
ジャッジサーバーID
(参考情報)
judge5 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 WA -
testcase_01 WA -
testcase_02 WA -
権限があれば一括ダウンロードができます

ソースコード

diff #

import sys
input = sys.stdin.readline
sys.setrecursionlimit(10 ** 7)


def dot(x, y, z, xx, yy, zz):
    return x*xx + y*yy + z*zz


def cross(x, y, z, xx, yy, zz):
    cx = y*zz-z*yy
    cy = z*xx-x*zz
    cz = x*yy-y*xx
    return cx, cy, cz


def convert(n):
    a, b = n.split(".")
    return int("".join([a, b]))


func = convert


N = int(input())
P = tuple(map(func, input().rstrip().split()))
Q = tuple(tuple(map(func, input().rstrip().split())) for _ in range(N))
ans = 0
for i in range(N-2):
    ax, ay, az = Q[i]
    for j in range(i+1, N-1):
        bx, by, bz = Q[j]
        X = (bx-ax, by-ay, bz-az)
        for k in range(j+1, N):
            cx, cy, cz = Q[k]
            Y = (cx-ax, cy-ay, cz-az)

            D = cross(*X, *Y)
            dist = abs(D[0]*P[0] + D[1]*P[1] + D[2]*P[2] - dot(*D, *X))
            dist /= dot(*D, *D) ** 0.5
            ans += dist

print("{:.20f}".format(ans * 1e-6))
0