結果
問題 |
No.1200 お菓子配り-3
|
ユーザー |
![]() |
提出日時 | 2025-04-15 23:44:59 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,246 bytes |
コンパイル時間 | 242 ms |
コンパイル使用メモリ | 82,436 KB |
実行使用メモリ | 78,476 KB |
最終ジャッジ日時 | 2025-04-15 23:47:53 |
合計ジャッジ時間 | 31,588 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 29 WA * 2 |
ソースコード
import math def get_divisors(s): if s == 0: return [] divisors = set() for i in range(1, int(math.isqrt(s)) + 1): if s % i == 0: divisors.add(i) divisors.add(s // i) sorted_divisors = sorted(divisors) return [d for d in sorted_divisors if d >= 3] def main(): import sys 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 S_total = X + Y divisors = get_divisors(S_total) count = 0 for d in divisors: A = d - 1 denomB = (d - 2) * d # Check B numB = A * X - Y if numB <= 0: continue if numB % denomB != 0: continue B = numB // denomB if B < 1: continue # Check C numC = A * Y - X if numC <= 0: continue if numC % denomB != 0: continue C = numC // denomB if C < 1: continue count += 1 print(count) if __name__ == "__main__": main()