結果

問題 No.1200 お菓子配り-3
ユーザー lam6er
提出日時 2025-03-31 17:34:31
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 1,090 bytes
コンパイル時間 212 ms
コンパイル使用メモリ 82,092 KB
実行使用メモリ 79,316 KB
最終ジャッジ日時 2025-03-31 17:35:22
合計ジャッジ時間 22,769 ms
ジャッジサーバーID
(参考情報)
judge3 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 29 WA * 2
権限があれば一括ダウンロードができます

ソースコード

diff #

import math
import sys

def count_valid_pairs(X, Y):
    D_val = abs(X - Y)
    S = X + Y
    if D_val == 0:
        return 0
    divisors = set()
    for i in range(1, int(math.isqrt(D_val)) + 1):
        if D_val % i == 0:
            divisors.add(i)
            divisors.add(D_val // i)
    count = 0
    for d1 in divisors:
        A = d1 + 1
        if A < 2:
            continue
        if S % (A + 1) != 0:
            continue
        denominator = A * A - 1
        numer_c = A * Y - X
        if numer_c <= 0 or numer_c % denominator != 0:
            continue
        c = numer_c // denominator
        numer_b = A * X - Y
        if numer_b <= 0 or numer_b % denominator != 0:
            continue
        b = numer_b // denominator
        if c > 0 and b > 0:
            count += 1
    return count

def main():
    input = sys.stdin.read().split()
    idx = 0
    S = int(input[idx])
    idx += 1
    for _ in range(S):
        X = int(input[idx])
        Y = int(input[idx + 1])
        idx += 2
        print(count_valid_pairs(X, Y))

if __name__ == '__main__':
    main()
0