atcoder#AGC012F. [AGC012F] Prefix Median

[AGC012F] Prefix Median

题目描述

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

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

  • b1 = (a1) b_1\ =\ (a_1) の中央値
  • b2 = (a1, a2, a3) b_2\ =\ (a_1,\ a_2,\ a_3) の中央値
  • b3 = (a1,a2,a3,a4,a5) b_3\ =\ (a_1,a_2,a_3,a_4,a_5) の中央値
  • : :
  • bN = (a1,a2,a3, ..., a2N1) b_N\ =\ (a_1,a_2,a_3,\ ...,\ a_{2N-1}) の中央値

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

输入格式

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

N N a1 a_1 a2 a_2 ... ... a2N1 a_{2N-1}

输出格式

答えを出力せよ。

题目大意

给定一个长度为 2n12n-1 的序列 aa,你可以随意排列 aa 中的元素,请求出有多少种不同的序列 bb,满足

  • bb 的长度为 nn

  • bi={a1a2i1}b_i=\{a_1\ldots a_{2i-1}\} 的中位数。

n50n\leq 50

答案对 109+710^9+7 取模。

2
1 3 2
3
4
1 3 2 3 2 4 3
16
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
911828634

提示

制約

  • 1  N  50 1\ ≦\ N\ ≦\ 50
  • 1  ai  2N1 1\ ≦\ a_i\ ≦\ 2N-1
  • ai a_i は整数

Sample Explanation 1

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

Sample Explanation 3

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