結果
問題 | No.2718 Best Consonance |
ユーザー | PNJ |
提出日時 | 2024-04-05 23:09:38 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 649 bytes |
コンパイル時間 | 389 ms |
コンパイル使用メモリ | 82,472 KB |
実行使用メモリ | 109,620 KB |
最終ジャッジ日時 | 2024-10-02 12:53:27 |
合計ジャッジ時間 | 43,404 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 35 WA * 1 |
ソースコード
def make_divisors(n): lower_divisors , upper_divisors = [], [] i = 1 while i*i <= n: if n % i == 0: lower_divisors.append(i) if i != n // i: upper_divisors.append(n//i) i += 1 return lower_divisors + upper_divisors[::-1] AA = [1 for i in range(2*10**5 + 1)] BB = [0 for i in range(2*10**5 + 1)] N = int(input()) P = [] for _ in range(N): a,b = map(int,input().split()) P.append((a*b,a,b)) P.sort() ans = 0 for c,a,b in P: D = make_divisors(a) for d in D: res = d * BB[d] // a ans = max(ans,res) if BB[d] * a < AA[d] * b: AA[d],BB[d] = a,b print(ans)