結果
問題 |
No.620 ぐるぐるぐるりん
|
ユーザー |
![]() |
提出日時 | 2020-05-03 12:46:14 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 60 ms / 1,000 ms |
コード長 | 933 bytes |
コンパイル時間 | 101 ms |
コンパイル使用メモリ | 12,672 KB |
実行使用メモリ | 10,880 KB |
最終ジャッジ日時 | 2024-06-11 19:38:42 |
合計ジャッジ時間 | 2,290 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 28 |
ソースコード
import sys read = sys.stdin.buffer.read readline = sys.stdin.buffer.readline readlines = sys.stdin.buffer.readlines def solve(T, p, w, v, gx, gy): T = int(T) p, w, v, gx, gy = map(float, (p, w, v, gx, gy)) r = complex(1 + v, w) power = [r**i for i in range(T + 1)] g = complex(gx, gy) - power[T] c = 1 / sum(abs(z) ** 2 for z in power[:T]) for i in range(T): a = c * g * power[T-1-i].conjugate() yield (a.real, a.imag) """ def check(p, w, v, gx, gy, uvs): z = 1 r = complex(1 + v, w) for dx, dy in uvs: z *= r z += complex(dx, dy) p -= dx**2 + dy**2 return abs(z - complex(gx, gy)) < 1e-6 and p > 0 uvs = ((1, 0), (1, 0), (1, 0), (0, 1), (0, 1)) check(5.5, 0.5, -0.5, -1.125, 2.125, uvs) """ N = int(readline()) probs = readlines() for prob in probs: uvs = solve(*prob.split()) print('\n'.join('{} {}'.format(x, y) for x, y in uvs))