题目描述
译自 ROI 2013 Day2 T3. Массовый прогноз
在学校计算机俱乐部主席选举中,有 K 位候选人和 N 位选民。候选人编号为 1 到 K,选民编号为 1 到 N。
根据投票结果,生成一个列表,第 i 个元素表示第 i 位选民投票支持的候选人编号。对于列表的每个子区间,安排一名观察员统计该区间的投票结果。因此,选举中共有 N(N+1)/2 名观察员。
如果观察员发现某候选人在其负责的区间内获得的票数超过半数,他会在社交网络上发布预测,认为该候选人将赢得选举。
你需要编写一个程序,根据投票列表计算观察员发布的预测数量。
输入格式
输入文件的第一行包含两个整数 N 和 K (1≤N≤500000,1≤K≤500000)。
第二行包含 N 个整数 V1,V2,…,VN (1≤Vi≤K),表示选民的投票列表。
输出格式
输出文件应包含一个整数,表示预测的数量。
5 2
1 2 1 2 1
9
3 7
5 2 6
3
数据范围与提示
本题包含 50 个独立测试点,每个测试点价值 2 分,总分为 100 分。测试点的评分是独立的,具体限制条件如下表所示:
| 测试点 |
N |
K |
测试点 |
N |
K |
测试点 |
N |
K |
| 1 |
2 |
2 |
18 |
2000 |
20 |
35 |
90000 |
1000 |
| 2 |
3 |
1 |
19 |
3000 |
2000 |
36 |
100000 |
5000 |
| 3 |
5 |
5 |
20 |
5000 |
2000 |
37 |
125000 |
1 |
| 4 |
10 |
10 |
21 |
7500 |
200 |
38 |
150000 |
12000 |
| 5 |
20 |
2 |
22 |
10000 |
10000 |
39 |
150000 |
18 |
| 6 |
30 |
3 |
23 |
15000 |
1500 |
40 |
200000 |
42000 |
| 7 |
50 |
20 |
24 |
20000 |
10 |
41 |
250000 |
26000 |
| 8 |
75 |
75 |
25 |
25000 |
100 |
42 |
300000 |
10000 |
| 9 |
100 |
2000 |
26 |
30000 |
15 |
43 |
350000 |
102000 |
| 10 |
150 |
30 |
27 |
35000 |
35 |
44 |
400000 |
12000 |
| 11 |
200 |
50 |
28 |
40000 |
10000 |
45 |
450000 |
5000 |
| 12 |
300 |
10 |
29 |
45000 |
10000 |
46 |
500000 |
2 |
| 13 |
400 |
100 |
30 |
50000 |
10000 |
47 |
500000 |
102000 |
| 14 |
500 |
2 |
31 |
55000 |
13000 |
48 |
500000 |
102000 |
| 15 |
300 |
200 |
32 |
60000 |
174 |
49 |
500000 |
102000 |
| 16 |
1000 |
2000 |
33 |
70000 |
10000 |
50 |
500000 |
501 |
| 17 |
1500 |
100 |
34 |
80000 |
1000 |
|