D - スキップ 解説

実行時間制限: 2 sec / メモリ制限: 1024 MB

配点 : 300300

問題文

define君は、横に並んだ NN 個のマス目で遊んでいます。左から順に、マス 1,2,3,...,N1, 2, 3, ..., N と番号付けられています。
マス ii には、整数AiA_iが書かれています。遊び方は、次の通りです。

  • マス V1V_1 からスタートし、スキップで MM (M0)(M \geq 0) 箇所のマス V1,V2,V3,...,VMV_1, V_2, V_3, ..., V_M を順に経由し、マス VMV_M でゴールする。
  • 途中で左に進んでは行けない。すなわち、1V1<V2<V3<...<VMN1 \leq V_1 < V_2 < V_3 < ... < V_M \leq N を満たす必要がある。
  • この時のポイントは |AV2AV1A_{V_2}-A_{V_1}| ++ |AV3AV2A_{V_3}-A_{V_2}| +...++ ... + |AVMAVM1A_{V_M}-A_{V_{M-1}}| 点となる。
  • なお、遊ばないという選択もできる。この場合 M=0M = 0 となり、ポイントは 00 点となる。また、11 箇所しか経由しない場合 (M=1M = 1 の場合) も 00 点となる。

さて、define君はポイントを最大化したいと考えていますが、彼は面倒くさがりなのでなるべく経由するマスの個数を少なくしたいです。
彼の代わりに、経由するマスの個数の最小値を計算してあげてください。

制約

  • 入力は全て整数である。
  • 1N1051 \leq N \leq 10^5
  • 109Ai109-10^9 \leq A_i \leq 10^9

入力

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

NN
A1A_1 A2A_2 \ldots AN1A_{N-1} ANA_N

出力

ポイントを最大化するためには、最小でいくつのマスを通ればいいかを 11 行に出力せよ。


入力例1 Copy

Copy
5
1 2 1 2 1

出力例1 Copy

Copy
5

この場合、全てのマスを通ると、ポイントが 44 点になります。
通るマスが 44 カ所以下でポイントを 44 点以上にする遊び方はありません。


入力例2 Copy

Copy
5
1 3 5 2 1

出力例2 Copy

Copy
3

この場合は、マス 1,3,51, 3, 5 を順に通ると 88 点が得られます。

writer: define



2021-10-03 (日)
21:15:40 +00:00