atcoder#ABC270D. [ABC270D] Stones

[ABC270D] Stones

配点 : 400400

問題文

数列 (A1,,AK)(A_1,\ldots,A_K) を使って、高橋君と青木君が石取りゲームをします。

最初、山には NN 個の石があります。高橋君から順に、二人が交互に次の操作を行います。

  • 現在山にある石の個数以下であるような AiA_i11 つ選ぶ。山から AiA_i 個の石を取り除く。

山から石がなくなったとき、ゲームは終了します。

二人がともに、ゲーム終了までに自分が取り除いた石の個数を最大化しようとするとき、高橋君は何個の石を取り除くことができますか?

制約

  • 1N1041 \leq N \leq 10^4
  • 1K1001 \leq K \leq 100
  • 1=A1<A2<<AKN1 = A_1 < A_2 < \ldots < A_K \leq N
  • 入力に含まれる値は全て整数である

入力

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

NN KK

A1A_1 A2A_2 \ldots AKA_K

出力

答えを出力せよ。

10 2
1 4
5

ゲームの進行の一例は以下の通りです。

  • 高橋君が山から 44 個の石を取り除く。
  • 青木君が山から 44 個の石を取り除く。
  • 高橋君が山から 11 個の石を取り除く。
  • 青木君が山から 11 個の石を取り除く。

この例では高橋君は 55 個の石を取り除くことができます。高橋君が 66 個以上の石を取り除くことはできないためこれが最大です。

高橋君は 55 個の石を取り除くことができるゲームの進行の例には、他にも次のようなものがあります。

  • 高橋君が山から 11 個の石を取り除く。
  • 青木君が山から 44 個の石を取り除く。
  • 高橋君が山から 44 個の石を取り除く。
  • 青木君が山から 11 個の石を取り除く。
11 4
1 2 3 6
8

ゲームの進行の一例は以下の通りです。

  • 高橋君が山から 66 個の石を取り除く。
  • 青木君が山から 33 個の石を取り除く。
  • 高橋君が山から 22 個の石を取り除く。

この例では高橋君は 88 個の石を取り除くことができます。高橋君が 99 個以上の石を取り除くことはできないためこれが最大です。

10000 10
1 2 4 8 16 32 64 128 256 512
5136