#G3003. 温度曲线

温度曲线

题目描述

气象小组记录了连续 nn 天的最高气温 a1,a2,…,ana_1, a_2, \dots, a_n(单位:摄氏度,可能是负数)。

请你回答两个问题:

  1. 气温连续严格上升的最长一段有多少天,以及这一段是从第几天开始的。所谓"连续严格上升",是指这一段里每一天都比前一天高(相等不算上升)。如果有多段长度并列最长,输出最早开始的那一段。特别地,单独的一天也算作一段长度为 11 的上升段,所以这一问的答案至少是 11。
  2. 相邻两天之间温差的绝对值,最大是多少。特别地,当 n=1n = 1 时,规定这个答案为 00。

输入格式

第一行一个整数 nn,表示记录的天数。

第二行 nn 个整数 a1,a2,…,ana_1, a_2, \dots, a_n,表示每天的最高气温。

输出格式

第一行两个整数,分别表示最长连续严格上升段的天数和它的起始天编号(天从 11 开始编号),用空格分隔。

第二行一个整数,表示相邻两天温差绝对值的最大值。

样例 #1

样例输入 #1

9
3 5 8 2 2 4 7 9 1

样例输出 #1

4 5
8

样例解释

连续严格上升的段有:第 1∼31 \sim 3 天(3,5,83, 5, 8,长 33 天)、第 5∼85 \sim 8 天(2,4,7,92, 4, 7, 9,长 44 天)。

第 44 天和第 55 天都是 22,相等不算上升,所以上升段在这里断开了。最长的一段是 44 天,从第 55 天开始。

相邻温差依次是 2,3,6,0,2,3,2,82, 3, 6, 0, 2, 3, 2, 8,最大的是最后一对(99 和 11)的 88。

提示

数据范围

  • 对于 30%30\% 的数据:n≤100n \le 100;
  • 对于 60%60\% 的数据:n≤1000n \le 1000;
  • 对于 100%100\% 的数据:1≤n≤1051 \le n \le 10^5,−50≤ai≤50-50 \le a_i \le 50。

提示

  • 两个问题都可以在同一次遍历中解决,不需要嵌套循环。
  • 维护"当前上升段的长度"和"当前上升段的起点"两个变量:气温上升就把长度加一,否则把长度重置为 11、起点重置为当前这一天。
  • 只有当当前长度严格大于历史最优长度时才更新答案,这样并列时保留的就是最早的那一段。