atcoder#ABC185D. [ABC185D] Stamp

[ABC185D] Stamp

配点 : 400400

問題文

左右方向一列に NN 個のマスが並んでいます。左から ii 番目のマスをマス ii と呼ぶことにします。 この NN 個のマスのうち、マス A1A_1, マス A2A_2, マス A3A_3, \dots, マス AMA_MMM 個のマスは青色で、それ以外のマスは白色です。(M=0M = 0 の可能性もあり、その場合青色のマスはありません。) あなたは一回だけ、正整数 kk を一つ選んで幅 kk のハンコを作ります。幅 kk のハンコを一回使用すると、NN 個のマスのうち連続する kk マスを選び、それらを赤色に塗り替えることができます。ただしその際、その kk 個のマスの中に青色のマスが入っていてはなりません。 kk とハンコの使用方法をうまく決めた時、最小で何回ハンコを使用すれば、白色のマスが存在しない状態にすることができるでしょうか。

制約

  • 1N1091 \le N \le 10^9
  • 0M2×1050 \le M \le 2 \times 10^5
  • 1AiN1 \le A_i \le N
  • AiA_i は互いに異なる
  • 入力は全て整数

入力

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

NN MM

$A_1 \hspace{7pt} A_2 \hspace{7pt} A_3 \hspace{5pt} \dots \hspace{5pt} A_M$

出力

最小で何回ハンコを使用すれば白色のマスが存在しない状態にすることができるかを表す整数を出力せよ。

5 2
1 3
3

kk として 11 を選び、33 つある白色マスを一回に一つずつ赤色に塗り替えると 33 回で目的を達成でき、最適です。 kk として 22 以上を選ぶと、ハンコの使用時に kk 個のマスの中に青色のマスが入っていてはいけないという制約のためにマス 22 がどうやっても赤色に塗り替えられなくなってしまいます。

13 3
13 3 9
6

例えば k=2k = 2 とし、以下のようにハンコを使用すると最適です。

  • マス 1,21, 2 を赤色に塗り替える
  • マス 4,54, 5 を赤色に塗り替える
  • マス 5,65, 6 を赤色に塗り替える
  • マス 7,87, 8 を赤色に塗り替える
  • マス 10,1110, 11 を赤色に塗り替える
  • マス 11,1211, 12 を赤色に塗り替える

ハンコの使用時に選ぶ連続する kk 個のマスは青色のマスを含んではいけませんが、既に赤色のマスを含むのは問題ありません。

5 5
5 2 1 4 3
0

最初から白色のマスが存在しない場合、ハンコは 11 回も使わなくてよいです。

1 0
1

M=0M = 0 の可能性もあります。