結果
問題 |
No.1274 楽しい格子点
|
ユーザー |
![]() |
提出日時 | 2025-03-31 17:30:28 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,286 bytes |
コンパイル時間 | 297 ms |
コンパイル使用メモリ | 82,736 KB |
実行使用メモリ | 62,168 KB |
最終ジャッジ日時 | 2025-03-31 17:31:24 |
合計ジャッジ時間 | 4,400 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 38 WA * 19 |
ソースコード
import sys from collections import deque def main(): A, B = map(int, sys.stdin.readline().split()) move_vectors = [ (A, B), (A, -B), (-A, B), (-A, -B), (B, A), (B, -A), (-B, A), (-B, -A) ] cutoff_s = 20 # Determined based on required precision visited = set() queue = deque() initial = (1, 1) visited.add(initial) queue.append(initial) sum_contrib = 0.0 while queue: p, q = queue.popleft() s = p + q if s > cutoff_s: continue # Compute contribution contrib = 1.0 for _ in range(s): contrib /= s if contrib < 1e-100: # Prevent underflow by breaking early break sum_contrib += contrib for dx, dy in move_vectors: np = p + dx nq = q + dy if np > 0 and nq > 0: if (np, nq) not in visited: ns = np + nq if ns <= cutoff_s: visited.add((np, nq)) queue.append((np, nq)) # Print with sufficient precision print("{0:.12f}".format(sum_contrib)) if __name__ == "__main__": main()