atcoder#ABC173E. [ABC173E] Multiplication 4

[ABC173E] Multiplication 4

配点 : 500500

問題文

NN 個の整数 A1,,ANA_1,\ldots,A_N が与えられます。

このなかからちょうど KK 個の要素を選ぶとき、選んだ要素の積としてありえる最大値を求めてください。

そして、答えを (109+7)(10^9+7) で割った余りを 00 以上 109+610^9+6 以下の整数として出力してください。

制約

  • 1KN2×1051 \leq K \leq N \leq 2\times 10^5
  • Ai109|A_i| \leq 10^9

入力

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

NN KK

A1A_1 \ldots ANA_N

出力

答えを (109+7)(10^9+7) で割った余りを、00 以上 109+610^9+6 以下の整数として出力せよ。

4 2
1 2 -3 -4
12

要素を 22 個選んだときの積としてありえる値は 2,3,4,6,8,122,-3,-4,-6,-8,12 なので、最大値は 1212 です。

4 3
-1 -2 -3 -4
1000000001

要素を 33 個選んだときの積としてありえる値は 24,12,8,6-24,-12,-8,-6 なので、最大値は 6-6 です。

これを (109+7)(10^9+7) で割った余りである 10000000011000000001 を出力します。

2 1
-1 1000000000
1000000000

要素を 11 個選んだときの積としてありえる値は 1,1000000000-1,1000000000 なので、最大値は 10000000001000000000 です。

10 10
1000000000 100000000 10000000 1000000 100000 10000 1000 100 10 1
999983200

答えを (109+7)(10^9+7) で割った余りを出力してください。