結果

問題 No.1274 楽しい格子点
コンテスト
ユーザー lam6er
提出日時 2025-03-31 17:30:28
言語 PyPy3
(7.3.17)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
WA  
実行時間 -
コード長 1,286 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 223 ms
コンパイル使用メモリ 96,104 KB
実行使用メモリ 83,556 KB
最終ジャッジ日時 2026-07-08 04:25:18
合計ジャッジ時間 6,620 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge2_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 38 WA * 19
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

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()
0