#P3031. [USACO11NOV] Above the Median G

[USACO11NOV] Above the Median G

题目描述

Farmer John(FJ)将他的 N(1N105)N(1\le N\le 10^5) 头奶牛排成一排来测量它们的身高。第 ii 头奶牛的身高为 Hi(1Hi109)H_i(1\le H_i\le 10^9) 纳米——FJ 追求精确的测量!他想拍摄一段奶牛组成的连续子序列的照片,提交给县集市举办的牛类摄影比赛。

这个比赛有一个非常奇怪的规定:只有当照片中的奶牛身高的中位数达到 X(1X109)X(1\le X\le 10^9) 时,这张照片才允许提交。

在本题中,我们定义序列 A0KA_{0\dots K} 的中位数为将其排序后 AK2A_{\lceil\frac{K}{2}\rceil} 的值,其中 K2\lceil\frac{K}{2}\rceil 表示将 K2\frac{K}{2} 向上取整到最近的整数(如果 K2\frac{K}{2} 已经是整数,则它保持不变)。 例如,序列 {7,3,2,6}\{7,3,2,6\} 的中位数是 66,而序列 {5,4,8}\{5,4,8\} 的中位数是 55

请帮助 FJ 计算他可以提交给摄影比赛的不同的连续子序列的数量。

输入格式

第一行包含两个用空格隔开的正整数 N,XN,X

第二到第 N+1N+1 行每行一个正整数,第 i+1i+1 行的正整数表示 HiH_i

输出格式

输出一行一个正整数,表示 FJ 的奶牛中,中位数至少为 XX 的连续子序列的数量。注意这个数值可能无法用 32 位整数存储。

4 6 
10 
5 
6 
2 

7 

提示

样例解释

FJ 的四头奶牛身高分别为 10,5,6,210,5,6,2。我们想知道有多少个连续子序列的中位数至少为 66

总共有 10 个可能的连续子序列。其中只有 77 个的中位数大于等于 66。它们分别是 $\{10\},\{6\},\{10,5\},\{5, 6\},\{6,2\},\{10,5,6\},\{10,5,6,2\}$。