結果
問題 | No.132 点と平面との距離 |
ユーザー |
![]() |
提出日時 | 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 |
ソースコード
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, mathans = 0for 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 += distprint(ans)