結果

問題 No.132 点と平面との距離
ユーザー brthyyjp
提出日時 2021-09-22 15:42:58
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 2,358 ms / 5,000 ms
コード長 678 bytes
コンパイル時間 196 ms
コンパイル使用メモリ 81,792 KB
実行使用メモリ 76,924 KB
最終ジャッジ日時 2024-07-05 06:10:48
合計ジャッジ時間 4,778 ms
ジャッジサーバーID
(参考情報)
judge1 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 3
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

n = int(input())
px, py, pz = map(float, input().split())
XYZ = []
for i in range(n):
x, y, z = map(float, input().split())
XYZ.append((x, y, z))
def cross(a, b):
x = a[1]*b[2]-b[1]*a[2]
y = (-1)*(a[0]*b[2]-b[0]*a[2])
z = a[0]*b[1]-b[0]*a[1]
return (x, y, z)
import itertools, math
ans = 0
for ijk in itertools.combinations(range(n), 3):
qi = XYZ[ijk[0]]
qj = XYZ[ijk[1]]
qk = XYZ[ijk[2]]
v1 = [aj-ai for aj, ai in zip(qj, qi)]
v2 = [ak-ai for ak, ai in zip(qk, qi)]
a, b, c = cross(v1, v2)
d = sum([-v*u for u, v in zip([a, b, c], qi)])
dist = abs(a*px+b*py+c*pz+d)/math.sqrt(a**2+b**2+c**2)
ans += dist
print(ans)
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0