結果

問題 No.132 点と平面との距離
ユーザー tktk_snsntktk_snsn
提出日時 2021-04-24 19:32:37
言語 PyPy3
(7.3.15)
結果
TLE  
(最新)
AC  
(最初)
実行時間 -
コード長 919 bytes
コンパイル時間 275 ms
コンパイル使用メモリ 87,324 KB
実行使用メモリ 78,920 KB
最終ジャッジ日時 2023-09-17 13:44:11
合計ジャッジ時間 8,788 ms
ジャッジサーバーID
(参考情報)
judge12 / judge11
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 328 ms
78,920 KB
testcase_01 AC 1,801 ms
78,204 KB
testcase_02 TLE -
権限があれば一括ダウンロードができます

ソースコード

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, *Q[k]))
            dist /= dot(*D, *D) ** 0.5
            ans += dist

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