Preparando MOJI

Maximum Product?

1000ms 524288K

Description:

You are given a positive integer $$$k$$$. For a multiset of integers $$$S$$$, define $$$f(S)$$$ as the following.

  • If the number of elements in $$$S$$$ is less than $$$k$$$, $$$f(S)=0$$$.
  • Otherwise, define $$$f(S)$$$ as the maximum product you can get by choosing exactly $$$k$$$ integers from $$$S$$$.

More formally, let $$$|S|$$$ denote the number of elements in $$$S$$$. Then,

  • If $$$|S|<k$$$, $$$f(S)=0$$$.
  • Otherwise, $$$f(S)=\max\limits_{T\subseteq S,|T|=k}\left(\prod\limits_{i\in T}i\right)$$$.

You are given a multiset of integers, $$$A$$$. Compute $$$\sum\limits_{B\subseteq A} f(B)$$$ modulo $$$10^9+7$$$.

Note that in this problem, we distinguish the elements by indices instead of values. That is, a multiset consisting of $$$n$$$ elements always has $$$2^n$$$ distinct subsets regardless of whether some of its elements are equal.

Input:

The first line of input contains two integers $$$n$$$ and $$$k$$$, where $$$n$$$ is the number of elements in $$$A$$$ ($$$1\le k\le n\le 600$$$).

The second line of input contains $$$n$$$ integers $$$a_1,a_2,\dots,a_n$$$, describing the elements in $$$A$$$ ($$$-10^9\le a_i\le 10^9$$$).

Output:

Output $$$\sum\limits_{B\subseteq A} f(B)$$$ modulo $$$10^9+7$$$.

Sample Input:

3 2
-1 2 4

Sample Output:

10

Sample Input:

3 1
1 1 1

Sample Output:

7

Sample Input:

10 4
-24 -41 9 -154 -56 14 18 53 -7 120

Sample Output:

225905161

Sample Input:

15 5
0 0 2 -2 2 -2 3 -3 -3 4 5 -4 -4 4 5

Sample Output:

18119684

Note:

Consider the first sample. From the definitions we know that

  • $$$f(\varnothing)=0$$$
  • $$$f(\{-1\})=0$$$
  • $$$f(\{2\})=0$$$
  • $$$f(\{4\})=0$$$
  • $$$f(\{-1,2\})=-2$$$
  • $$$f(\{-1,4\})=-4$$$
  • $$$f(\{2,4\})=8$$$
  • $$$f(\{-1,2,4\})=8$$$

So we should print $$$(0+0+0+0-2-4+8+8)\bmod (10^9+7)=10$$$.

In the second example, note that although the multiset consists of three same values, it still has $$$8$$$ distinct subsets: $$$\varnothing,\{1\},\{1\},\{1\},\{1,1\},\{1,1\},\{1,1\},\{1,1,1\}$$$.

Informação

Codeforces

Provedor Codeforces

Código CF1696H

Tags

brute forcecombinatoricsdpgreedyimplementationmathtwo pointers

Submetido 0

BOUA! 0

Taxa de BOUA's 0%

Datas 09/05/2023 10:29:19

Relacionados

Nada ainda