結果
問題 | 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 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 189 ms
76,924 KB |
testcase_01 | AC | 840 ms
76,728 KB |
testcase_02 | AC | 2,358 ms
76,752 KB |
ソースコード
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)