結果

問題 No.2718 Best Consonance
ユーザー PNJPNJ
提出日時 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
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 44 ms
60,948 KB
testcase_01 AC 45 ms
60,992 KB
testcase_02 AC 44 ms
60,784 KB
testcase_03 AC 43 ms
60,864 KB
testcase_04 AC 44 ms
61,536 KB
testcase_05 AC 44 ms
61,592 KB
testcase_06 AC 46 ms
60,684 KB
testcase_07 AC 45 ms
60,316 KB
testcase_08 AC 44 ms
62,144 KB
testcase_09 AC 88 ms
79,972 KB
testcase_10 AC 90 ms
79,980 KB
testcase_11 AC 90 ms
79,896 KB
testcase_12 AC 89 ms
79,924 KB
testcase_13 AC 91 ms
79,716 KB
testcase_14 AC 1,875 ms
107,820 KB
testcase_15 AC 1,423 ms
100,204 KB
testcase_16 AC 1,852 ms
101,164 KB
testcase_17 AC 1,208 ms
96,824 KB
testcase_18 AC 1,676 ms
103,864 KB
testcase_19 AC 1,382 ms
99,440 KB
testcase_20 AC 1,833 ms
108,308 KB
testcase_21 AC 1,767 ms
105,516 KB
testcase_22 AC 1,800 ms
105,904 KB
testcase_23 AC 1,283 ms
95,028 KB
testcase_24 AC 1,952 ms
109,360 KB
testcase_25 AC 1,984 ms
109,100 KB
testcase_26 AC 1,974 ms
109,620 KB
testcase_27 AC 2,331 ms
109,612 KB
testcase_28 AC 1,998 ms
109,364 KB
testcase_29 AC 1,995 ms
109,612 KB
testcase_30 AC 1,952 ms
108,832 KB
testcase_31 AC 1,958 ms
109,232 KB
testcase_32 AC 1,979 ms
108,976 KB
testcase_33 AC 1,988 ms
109,488 KB
testcase_34 AC 44 ms
61,288 KB
testcase_35 AC 45 ms
60,644 KB
testcase_36 AC 1,793 ms
100,448 KB
testcase_37 AC 44 ms
61,712 KB
testcase_38 AC 2,226 ms
99,804 KB
testcase_39 WA -
権限があれば一括ダウンロードができます

ソースコード

diff #

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