小美的陡峭值操作
题号:NC296001
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

定义一个数组的的陡峭值为:相邻两个元素之差的绝对值之和。
现在小美拿到了一个数组,她可以最多进行1次操作:选择一个区间,使得区间内所有元素加1。
小美希望最终数组的陡峭值尽可能小,你能帮帮她吗?

输入描述:

第一行输入一个正整数t,代表询问次数。
对于每次询问输入两行:
第一行输入一个正整数n,代表数组长度。
第二行输入n个正整数a_i,代表小美拿到的数组。
1\leq t \leq 1000
2\leq n \leq 10^5
1\leq a_i \leq 10^9
保证所有询问的n的总和不超过10^5

输出描述:

输出t行,输出一个整数,代表该次查询陡峭值的最小值。
示例1

输入

复制
2
5
1 4 2 3 4
3
1 2 1

输出

复制
5
1

说明

第一组询问,选择[3,4]区间即可,数组变成{1,4,3,4,4}。
第二组询问,选择[1,1]区间即可,数组变成{2,2,1}。