結果
問題 |
No.1200 お菓子配り-3
|
ユーザー |
![]() |
提出日時 | 2025-04-15 23:47:21 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,167 bytes |
コンパイル時間 | 469 ms |
コンパイル使用メモリ | 81,620 KB |
実行使用メモリ | 65,224 KB |
最終ジャッジ日時 | 2025-04-15 23:49:35 |
合計ジャッジ時間 | 6,012 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | TLE * 1 -- * 30 |
ソースコード
import math import sys 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 count = 0 D = X * X - 4 * (Y - 1) if D < 0: print(0) continue sqrt_D = int(math.isqrt(D)) if sqrt_D * sqrt_D > D: sqrt_D -= 1 A_low = (X - sqrt_D) / 2 A_high = (X + sqrt_D) / 2 A_start = max(2, math.ceil(A_low)) A_end = math.floor(A_high) for A in range(A_start, A_end + 1): if A * X <= Y: continue numerator = A * X - Y denominator = A * A - 1 if denominator == 0: continue if numerator % denominator != 0: continue B = numerator // denominator if B < 1: continue C = X - A * B if C < 1: continue count += 1 print(count) if __name__ == '__main__': main()