编程题
### 问题描述 在上大学之后, Yaya 和 Clrlss 在课上接触了一种神秘而又富有吸引力的时代产物:数据结构。这是一种用只言片语无法准确描述的东西,但是它的神奇与巧妙使得 Clrlss 和 Yaya 赞叹不已。 为了试试不同的数据结构究竟能做到什么操作,他们拿出了一个序列。这个序列一共有 $n$ 个整数,分别为 $a_{1},a_{2},...,a_{n}$ 。然后,他们要对这个序列做什么呢?这让他们犯了难。 突然, Clrlss 一拍脑门,兴奋地说:“不如我们来数一数这个序列有多少子区间,满足区间内众数的出现次数恰好超过区间长度的一半!” 由于刚刚接触数据结构, Yaya 听了这个问题之后陷入了沉思。但是, Clrlss 却已经悄悄把这个问题解决了。 亲爱的见证者啊,这种题目对您来说肯定不在话下。至于 Yaya, 让我们祝她不要思考到低血糖。 简化题意:给定一个长度为 $n$ 的序列 $a_{1}..a_{n}$ ,问存在多少个子区间 $a_{l}..a_{r}$ $(1\le l \le r \le n)$ ,满足区间众数出现的次数为$(R-L+1)/2+1$。 其中,"/" 的定义为整除并且向下取整。 ### 输入格式 第一行输入一个整数 $n$ ($1 \le n \le 10^5$) ,表示序列的长度。 第二行输入 $n$ 个整数 $a_{1},a_{2},...,a_{n}$ , 表示给定的序列 ($1 \le a_i \le 10^9$)。 ### 输出格式 一行一个整数,表示符合条件的区间个数。 ### 样例输入 ``` 6 1 1 4 5 1 4 ``` ### 样例输出 ``` 9 ``` ### 说明 合法的区间有: - 所有长度为 $1$ 的区间,共6个; - $a_{1}..a_{2}$ , $a_{1}..a_{3}$ 以及 $a_{1}..a_{5}$ 。
查看答案
赣ICP备20007335号-2