結果
問題 | No.2500 Products in a Range |
ユーザー |
![]() |
提出日時 | 2023-10-13 21:38:20 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 745 bytes |
コンパイル時間 | 277 ms |
コンパイル使用メモリ | 81,920 KB |
実行使用メモリ | 82,736 KB |
最終ジャッジ日時 | 2024-09-15 17:15:40 |
合計ジャッジ時間 | 8,188 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 9 TLE * 2 -- * 50 |
ソースコード
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)