結果
問題 | No.2500 Products in a Range |
ユーザー | rlangevin |
提出日時 | 2023-10-13 21:38:20 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 745 bytes |
コンパイル時間 | 291 ms |
コンパイル使用メモリ | 87,104 KB |
実行使用メモリ | 83,688 KB |
最終ジャッジ日時 | 2023-10-13 21:38:29 |
合計ジャッジ時間 | 8,445 ms |
ジャッジサーバーID (参考情報) |
judge12 / judge14 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 75 ms
75,868 KB |
testcase_01 | AC | 77 ms
71,328 KB |
testcase_02 | AC | 236 ms
78,796 KB |
testcase_03 | AC | 121 ms
77,052 KB |
testcase_04 | AC | 157 ms
78,372 KB |
testcase_05 | AC | 211 ms
78,960 KB |
testcase_06 | AC | 117 ms
77,552 KB |
testcase_07 | AC | 904 ms
79,908 KB |
testcase_08 | TLE | - |
testcase_09 | AC | 270 ms
80,112 KB |
testcase_10 | TLE | - |
testcase_11 | -- | - |
testcase_12 | -- | - |
testcase_13 | -- | - |
testcase_14 | -- | - |
testcase_15 | -- | - |
testcase_16 | -- | - |
testcase_17 | -- | - |
testcase_18 | -- | - |
testcase_19 | -- | - |
testcase_20 | -- | - |
testcase_21 | -- | - |
testcase_22 | -- | - |
testcase_23 | -- | - |
testcase_24 | -- | - |
testcase_25 | -- | - |
testcase_26 | -- | - |
testcase_27 | -- | - |
testcase_28 | -- | - |
testcase_29 | -- | - |
testcase_30 | -- | - |
testcase_31 | -- | - |
testcase_32 | -- | - |
testcase_33 | -- | - |
testcase_34 | -- | - |
testcase_35 | -- | - |
testcase_36 | -- | - |
testcase_37 | -- | - |
testcase_38 | -- | - |
testcase_39 | -- | - |
testcase_40 | -- | - |
testcase_41 | -- | - |
testcase_42 | -- | - |
testcase_43 | -- | - |
testcase_44 | -- | - |
testcase_45 | -- | - |
testcase_46 | -- | - |
testcase_47 | -- | - |
testcase_48 | -- | - |
testcase_49 | -- | - |
testcase_50 | -- | - |
testcase_51 | -- | - |
testcase_52 | -- | - |
testcase_53 | -- | - |
testcase_54 | -- | - |
testcase_55 | -- | - |
testcase_56 | -- | - |
testcase_57 | -- | - |
testcase_58 | -- | - |
testcase_59 | -- | - |
testcase_60 | -- | - |
ソースコード
from bisect import * N, l, r = map(int, input().split()) B = sorted(list(map(int, input().split()))) A = [] zero = 0 for b in B: if b == 0: zero += 1 N -= 1 else: A.append(b) def f(a): if a > 0: return (l + a - 1)//a, r//a else: return (-r -a - 1)//(-a), (-l)//(-a) ans = 0 for i in range(N): for j in range(i + 1, N): mi1, ma1 = f(A[i]) mi2, ma2 = f(A[j]) mi = max(mi1, mi2, A[i]) - 1 ma = min(ma1, ma2, A[j]) cnt = int(A[i] <= mi) + int(A[j] > ma) if not (l <= A[i] * A[j] <= r): continue ans = max(ans, bisect_right(A, ma) - bisect_right(A, mi) + cnt) if l <= 0 <= r: ans += zero print(ans)