atcoder#ABC282E. [ABC282E] Choose Two and Eat One

[ABC282E] Choose Two and Eat One

配点 : 500500

問題文

箱の中に NN 個のボールが入っており、各ボールには 11 以上 M1M-1 以下の整数が書かれています。 i=1,2,,Ni = 1, 2, \ldots, N について、ii 番目のボールに書かれた整数は AiA_i です。

高橋君は、箱の中に 22 個以上のボールが残っている限り、下記の行動を繰り返します。

  • まず、箱の中から 22 つのボールを任意に選んで取り出す。
  • 次に、取り出した 22 つのボールに書かれた整数をそれぞれ x,yx, y とおき、xy+yxx^y + y^xMM で割ったあまりに等しい得点を獲得する。
  • その後、取り出した 22 つのボールのうち、任意に選んだ一方を食べ、もう一方を箱の中に戻す。

高橋君が獲得する合計得点としてあり得る最大値を出力してください。

制約

  • 2N5002 \leq N \leq 500
  • 2M1092 \leq M \leq 10^9
  • 1AiM11 \leq A_i \leq M-1
  • 入力はすべて整数

入力

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

NN MM

A1A_1 A2A_2 \ldots ANA_N

出力

答えを出力せよ。

4 10
4 2 3 2
20

高橋君が下記の通りに行動する場合を考えます。以下、XmodYX \bmod Y で 非負整数 XX を正整数 YY で割ったあまりを表します。

  1. 箱の中から 11 番目のボールと 33 番目のボールを取り出し、(43+34)mod10=5(4^3 + 3^4) \bmod 10 = 5 点を獲得します。その後、11 番目のボールを食べ、33 番目のボールを箱の中に戻します。その結果、箱の中には 2,3,42, 3, 4 番目のボールが残ります。
  2. 箱の中から 33 番目のボールと 44 番目のボールを取り出し、(32+23)mod10=7(3^2 + 2^3) \bmod 10 = 7 点を獲得します。その後、33 番目のボールを食べ、44 番目のボールを箱の中に戻します。その結果、箱の中には 2,42, 4 番目のボールが残ります。
  3. 箱の中から 22 番目のボールと 44 番目のボールを取り出し、(22+22)mod10=8(2^2 + 2^2) \bmod 10 = 8 点を獲得します。その後、22 番目のボールを食べ、44 番目のボールを箱の中に戻します。その結果、箱の中には 44 番目のボールのみが残ります。

このとき、高橋君が獲得する合計得点は 5+7+8=205 + 7 + 8 = 20 点であり、これがあり得る最大値です。

20 100
29 31 68 20 83 66 23 84 69 96 41 61 83 37 52 71 18 55 40 8
1733