双指针滑动窗口 + 单调队列维护区间最小值与最大值
某小区宣传其在冬季采暖期间,提供室内温度保持在18−24摄氏度之间,且温差在4摄氏度内的恒温服务。为了评价该小区冬季采暖温控效果,现按固定时间间隔对室内温度进行连续N次采样,采样的室内温度按照从0开始升序的索引号依次记录。
通过计算采样的室内温度在小区承诺恒温范围内的持续时间,即持续时间内的采样室内温度值T均满足 18≤T≤24,且持续时间内的温差(最大温度max - 最低温度min<=4),持续时间越长,采暖温控效果越好。
请输出最大的持续时间开始点和结束点的采样的室内温度索引号,如果存在多个最大持续时间,按持续时间的开始点采样的室内温度索引号升序,逐行输出。
第一行输入为按固定时间间隔对室内温度进行连续采样次N。N的取值范围为[1,105]
第二行输入为按固定时间间隔采集的一段连续的室内温度数值,整型,温度数值取值范围[0,30] 。输入格式为:用空格分割的温度数值数组
最大持续时间的开始点和结束点的数组元素索引号,中间用空格分隔。存在多组时逐行输出。说明:数组元素索引号从0开始。
输入
6
16 18 20 25 23 20
输出
1 2
4 5
说明
满足恒温要求的为数组索引1−2、数组索引4−5,按起始索引升序输出
输入
3
16 18 16
输出
1 1
说明
仅有一个温度18在承诺温度范围内,开始点和结束点的数组元素索引号相同均为1,因此输出1 1
输入
13
16 18 20 21 22 24 26 25 23 21 21 20 19
输出
8 12
说明
数组中索引1−4温度值为18 20 21 22,均满足18≤T≤24 ,且温差为 22−18=4≤4。持续时间为4;数组中索引8−12温度值为23 21 21 20 19,均满足18≤T≤24 ,且温差为23−19=4≤4 。持续时间为5,因此输出8 12
输入
11
16 17 18 19 20 21 22 21 22 24 26
输出
2 8