CF1453B.Suffix Operations
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Gildong has an interesting machine that has an array a with n integers. The machine supports two kinds of operations:
- Increase all elements of a suffix of the array by 1 .
- Decrease all elements of a suffix of the array by 1 .
A suffix is a subsegment (contiguous elements) of the array that contains an . In other words, for all i where ai is included in the subsegment, all aj 's where i<j≤n must also be included in the subsegment.
Gildong wants to make all elements of a equal — he will always do so using the minimum number of operations necessary. To make his life even easier, before Gildong starts using the machine, you have the option of changing one of the integers in the array to any other integer. You are allowed to leave the array unchanged. You want to minimize the number of operations Gildong performs. With your help, what is the minimum number of operations Gildong will perform?
Note that even if you change one of the integers in the array, you should not count that as one of the operations because Gildong did not perform it.
输入格式
Each test contains one or more test cases. The first line contains the number of test cases t ( 1≤t≤1000 ).
Each test case contains two lines. The first line of each test case consists of an integer n ( 2≤n≤2⋅105 ) — the number of elements of the array a .
The second line of each test case contains n integers. The i -th integer is ai ( −5⋅108≤ai≤5⋅108 ).
It is guaranteed that the sum of n in all test cases does not exceed 2⋅105 .
输出格式
For each test case, print one integer — the minimum number of operations Gildong has to perform in order to make all elements of the array equal.
输入输出样例
输入#1
7 2 1 1 3 -1 0 2 4 99 96 97 95 4 -3 -5 -2 1 6 1 4 3 2 4 1 5 5 0 0 0 5 9 -367741579 319422997 -415264583 -125558838 -300860379 420848004 294512916 -383235489 425814447
输出#1
0 1 3 4 6 5 2847372102
说明/提示
In the first case, all elements of the array are already equal. Therefore, we do not change any integer and Gildong will perform zero operations.
In the second case, we can set a3 to be 0 , so that the array becomes [−1,0,0] . Now Gildong can use the 2 -nd operation once on the suffix starting at a2 , which means a2 and a3 are decreased by 1 , making all elements of the array −1 .
In the third case, we can set a1 to 96 , so that the array becomes [96,96,97,95] . Now Gildong needs to:
- Use the 2 -nd operation on the suffix starting at a3 once, making the array [96,96,96,94] .
- Use the 1 -st operation on the suffix starting at a4 2 times, making the array [96,96,96,96] .
In the fourth case, we can change the array into [−3,−3,−2,1] . Now Gildong needs to:
- Use the 2 -nd operation on the suffix starting at a4 3 times, making the array [−3,−3,−2,−2] .
- Use the 2 -nd operation on the suffix starting at a3 once, making the array [−3,−3,−3,−3] .