极差最大的区间
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
Special Judge, 64bit IO Format: %lld

题目描述

给定一个长度为 n 的整数序列 A,下标从 1n


你需要找到一个连续的子区间 [l, r](其中 1 \le l \le r \le n),使得该子区间内的元素的极差最大


一个区间的极差定义为该区间内所有元素中的最大值与最小值之差。


即:对于子区间 A[l..r],其极差为 \max(A[l..r]) - \min(A[l..r])


你需要输出任意一个满足最大极差的连续子区间 [l, r] 的起始和结束下标 lr,以及这个最大极差值。

输入描述:

第一行包含一个整数 n (1 \le n \le 100),表示序列的长度。


第二行包含 n 个整数 A_1, A_2, \dots, A_n (0 \le A_i \le 100),表示序列的元素。

输出描述:

输出一行三个整数:


  • 第一个整数表示拥有最大极差的连续子区间的起始下标 l


  • 第二个整数表示该连续子区间的结束下标 r


  • 第三个整数表示这个最大极差值。


如果存在多个子区间拥有相同的最大极差,你可以输出其中任意一个。

示例1

输入

复制
4
2 3 4 1

输出

复制
2 4 3
示例2

输入

复制
5
1 5 2 9 3

输出

复制
1 4 8