核心转化:固定窗口大小为 m,最终成绩为 (sum - min - max) / (m - 2)。因为分母固定,最大化平均值等价于最大化分子 sum - min - max
。
滑动窗口:
维护窗口和 wsum
(进入加、移出减)。
维护窗口最小值与最大值:用两个单调队列
在一场跳水比赛中,共有 n 位裁判依次为选手打分(打分均为非负整数)。根据比赛规则,需要从所有裁判的打分中,选取连续的 m 个打分来计算选手的最终成绩。具体计算方式为:从这 m 个打分里去掉 1 个最高分和 1 个最低分,最后取剩余分数的平均值作为该选手的最终成绩。
现在需要找到所有可能的连续 m 个打分区间中,最终成绩最高的那个区间,并输出该区间的起始裁判编号(从 1 开始计数)。如果有多个区间的最终成绩相同,输出起始编号最小的那个。
第一行包含两个正整数 n 和 m(3≤m≤n≤105) 分别表示裁判总数和选取的连续打分个数。
第二行包含 n 个非负整数 a1,a2,...,an(0≤ai≤109),表示每位裁判的打分。
输出一个正整数,表示最终成绩最高的区间的起始裁判编号。
输入
6 4
4 2 8 5 9 3
输出
2
输入
5 3
4 3 4 4 4
输出
1