結果
| 問題 |
No.2500 Products in a Range
|
| コンテスト | |
| ユーザー |
rlangevin
|
| 提出日時 | 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)
rlangevin