問題一覧 > 通常問題

No.2500 Products in a Range

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 58
作問者 : suisensuisen / テスター : 👑 emthrmemthrm torisasami4torisasami4 rniyarniya
1 ProblemId : 10101 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2023-09-03 00:29:39

問題文

長さ $n$ の整数列 $A=(A _ 1, A _ 2, \ldots, A _ n)$ および整数 $l, r$ が与えられます。

$A$ の 連続とは限らない 部分列 $B$ であって、次の条件を満たすものを よい部分列 と呼びます。

  • $B$ の長さを $|B|$ と表す。$1\leq i\lt j\leq |B|$ を満たす任意の整数 $i, j$ に対して、$l \leq B _ i B _ j\leq r$ が成り立つ。

特に、長さ $1$ の部分列は必ず よい部分列 であることに注意してください。

よい部分列 の長さの最大値を求めてください。

入力

入力は以下の形式で標準入力から与えられます。

$n\ l\ r$
$A _ 1\ A _ 2\ \cdots A _ n$
  • 入力は全て整数で与えられる。
  • $1\leq n\leq 5000$
  • $-10 ^ 9 \leq l\leq r\leq 10 ^ 9$
  • $-10 ^ 9 \leq A _ i\leq 10 ^ 9$

出力

答えを $1$ 行に出力し、改行してください。

サンプル

サンプル1
入力
5 -3 6
1 4 -5 3 2
出力
3

この入力は $n=5,\ l=-3,\ r=6,\ A=(1,4,-5,3,2)$ を表します。

例えば $B=(1,-5)$ は $A$ の部分列ですが、$B _ 1 \times B _ 2 = -5 \lt -3 = l$ より $B$ は よい部分列 ではありません。

一方 $B=(1,3,2)$ は $A$ の部分列であり、次の $3$ つが成り立つので よい部分列 です。

  • $l\leq B _ 1\times B _ 2 = 3 \leq r$
  • $l\leq B _ 1\times B _ 3 = 2 \leq r$
  • $l\leq B _ 2\times B _ 3 = 6 \leq r$

長さ $4$ 以上の よい部分列 は存在しないことを証明できるので、この入力に対する答えは $3$ となります。

サンプル2
入力
15 48 72
3 -1 4 -1 5 -9 2 -6 5 -3 5 -8 9 -7 9
出力
3

$B=(-9,-6,-8)$ は最長の よい部分列 のうちの一つです。

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。