AtCoder Grand Contest 012

F - Prefix Median


Time limit時間制限 : 2sec / Memory limitメモリ制限 : 256MB

配点 : 2000

問題文

すぬけくんは長さ 2N-1 の数列 a をもらいました。

すぬけくんは a を自由に並び替えたあと、a を使って新しい数列 b を作りました。b は以下に示されるような長さ N の数列です。

  • b_1 = (a_1) の中央値
  • b_2 = (a_1, a_2, a_3) の中央値
  • b_3 = (a_1,a_2,a_3,a_4,a_5) の中央値
  • :
  • b_N = (a_1,a_2,a_3, ..., a_{2N-1}) の中央値

b としてありうる数列の数を modulo 10^{9} + 7 で求めてください。

制約

  • 1 ≦ N ≦ 50
  • 1 ≦ a_i ≦ 2N-1
  • a_i は整数

入力

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

N
a_1 a_2 ... a_{2N-1}

出力

答えを出力せよ。


入力例 1

2
1 3 2

出力例 1

3

b としてありうる数列は (1,2),(2,2),(3,2)3 通りです。これらはそれぞれ (1,2,3),(2,1,3),(3,1,2) から作ることが可能です。


入力例 2

4
1 3 2 3 2 4 3

出力例 2

16

入力例 3

15
1 5 9 11 1 19 17 18 20 1 14 3 3 8 19 15 16 29 10 2 4 13 6 12 7 15 16 1 1

出力例 3

911828634

10^{9} + 7 で割ったあまりを求めてください。

Score : 2000 points

Problem Statement

Snuke received an integer sequence a of length 2N-1.

He arbitrarily permuted the elements in a, then used it to construct a new integer sequence b of length N, as follows:

  • b_1 = the median of (a_1)
  • b_2 = the median of (a_1, a_2, a_3)
  • b_3 = the median of (a_1, a_2, a_3, a_4, a_5)
  • :
  • b_N = the median of (a_1, a_2, a_3, ..., a_{2N-1})

How many different sequences can be obtained as b? Find the count modulo 10^{9} + 7.

Constraints

  • 1 ≤ N ≤ 50
  • 1 ≤ a_i ≤ 2N-1
  • a_i are integers.

Input

Input is given from Standard Input in the following format:

N
a_1 a_2 ... a_{2N-1}

Output

Print the answer.


Sample Input 1

2
1 3 2

Sample Output 1

3

There are three sequences that can be obtained as b: (1,2), (2,2) and (3,2). Each of these can be constructed from (1,2,3), (2,1,3) and (3,1,2), respectively.


Sample Input 2

4
1 3 2 3 2 4 3

Sample Output 2

16

Sample Input 3

15
1 5 9 11 1 19 17 18 20 1 14 3 3 8 19 15 16 29 10 2 4 13 6 12 7 15 16 1 1

Sample Output 3

911828634

Print the count modulo 10^{9} + 7.


Submit提出する