小红的最大中位数
题号:NC288548
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

小红拿到了一个数组,她准备选择一个子序列,使得该子序列的中位数尽可能大。小红想知道,一共有多少种方案?
奇数长度的子序列中位数为中间的那个数,偶数长度的子序列中位数为中间两个数的平均数。

输入描述:

第一行输入一个正整数n,代表数组大小、待选择的子序列长度。
第二行输入n个正整数a_i。代表小红拿到的数组。
1\leq n \leq 10^5
1\leq a_i \leq 10^9

输出描述:

一个整数,代表选择的方案数。由于答案可能过大,请对10^9+7取模。
示例1

输入

复制
3
1 2 2

输出

复制
4

说明

最大中位数为 2。
选一个 2 有两种方案,选两个 2 有一种方案,选三个数有一种方案。