这道题是没有舞伴的Yazid用新生舞会的时间出的。
Yazid有一个长度为n的序列A,下标从1至n。显然地,这个序列共有个子区间。
对于任意一个子区间[l,r],如果该子区间内的众数在该子区间的出现次数严格大于(即该子区间长度的一半),那么Yazid就说这个子区间是“新生舞会的”。
所谓众数,即为该子区间内出现次数最多的数。特别地,如果出现次数最多的数有多个,我们规定值最小的数为众数。
现在,Yazid想知道,共有多少个子区间是“新生舞会的”。
第一行2个用空格隔开的非负整数n,type,表示序列的长度和数据类型。数据类型的作用将在备注中说明。第二行n个用空格隔开的非负整数,依次为A1,A2,... ,An,描述这个序列。
输出一行一个整数,表示答案。
对于所有数据,保证 1≤n≤500000,0≤Ai≤n−1。对于type=0的数据,没有任何特殊约定。对于type=1的数据,保证Ai∈{0,1}。
对于type=2的数据,保证序列A的众数在整个序列中的出现次数不超过15。
对于type=3的数据,保证Ai≤7。