atcoder#ARC148A. [ARC148A] mod M

[ARC148A] mod M

配点 : 300300

問題文

数列 A=(A1,A2,...,AN)A = (A_1, A_2, ..., A_N) が与えられます。 あなたは次の操作をちょうど 11 回行うことができます。

  • 22 以上の整数 MM11 つ選ぶ。その後、1iN1 \leq i \leq N を満たすすべての整数 ii に対して、 AiA_i を 「AiA_iMM で割ったあまり」に置き換える。

例えば A=(2,7,4)A = (2, 7, 4)M=4M = 4 を選んだ時、操作後の AA(2mod4,7mod4,4mod4)=(2,3,0)(2 \bmod 4, 7 \bmod 4, 4 \bmod 4) = (2, 3, 0) になります。

操作を行った後の AA に含まれる要素の種類数は最小で何種類になりますか?

制約

  • 2N2×1052 \leq N \leq 2 \times 10^5
  • 0Ai1090 \leq A_i \leq 10^9
  • 入力される値はすべて整数

入力

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

NN

A1A_1 A2A_2 \dots ANA_N

出力

答えを出力せよ。

3
1 4 8
2

操作で M=3M = 3 を選ぶと A=(1mod3,4mod3,8mod3)=(1,1,2)A = (1 \bmod 3, 4 \bmod 3, 8 \bmod 3) = (1, 1, 2) になり、操作後の AA の要素の種類数は 22 種類になります。 AA の要素の種類数を 11 種類にすることはできないので 22 が答えです。

4
5 10 15 20
1

操作で M=5M = 5 を選ぶと A=(0,0,0,0)A = (0, 0, 0, 0) になり、これが最適です。

10
3785 5176 10740 7744 3999 3143 9028 2822 4748 6888
1