아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Suffix Operations

시간 제한1초메모리 제한512 MB

요약
배열의 한 원소를 최대 한 번 바꿀 수 있을 때, 접미사에 +1/-1을 적용해 모든 원소를 같게 만드는 최소 연산 횟수를 구한다.
난이도

보통10점 중 6점

유형
그리디, 수학, 구현
정답자
아직 제출이 없습니다

문제

Gildong has an interesting machine that has an array aa with nn integers. The machine supports two kinds of operations:

  1. Increase all elements of a suffix of the array by 11.
  2. Decrease all elements of a suffix of the array by 11.

A suffix is a subsegment (contiguous elements) of the array that contains a_na\_n. In other words, for all ii where a_ia\_i is included in the subsegment, all a_ja\_j’s where i<j≤ni\lt j\le n must also be included in the subsegment.

Gildong wants to make all elements of aa 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 tt (1≤t≤10001\le t\le 1000).

Each test case contains two lines. The first line of each test case consists of an integer nn (2≤n≤2⋅1052\le n\le 2\cdot 10^5) --- the number of elements of the array aa.

The second line of each test case contains nn integers. The ii-th integer is a_ia\_i (−5⋅108≤a_i≤5⋅108-5\cdot 10^8\le a\_i\le 5\cdot 10^8).

It is guaranteed that the sum of nn in all test cases does not exceed 2⋅1052\cdot 10^5.

출력

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.

힌트

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 a_3a\_3 to be 00, so that the array becomes \[−1,0,0]\[-1,0,0]. Now Gildong can use the 22-nd operation once on the suffix starting at a_2a\_2, which means a_2a\_2 and a_3a\_3 are decreased by 11, making all elements of the array −1-1.

In the third case, we can set a_1a\_1 to 9696, so that the array becomes \[96,96,97,95]\[96,96,97,95]. Now Gildong needs to:

  • Use the 22-nd operation on the suffix starting at a_3a\_3 once, making the array \[96,96,96,94]\[96,96,96,94].
  • Use the 11-st operation on the suffix starting at a_4a\_4 22 times, making the array \[96,96,96,96]\[96,96,96,96].

In the fourth case, we can change the array into \[−3,−3,−2,1]\[-3,-3,-2,1]. Now Gildong needs to:

  • Use the 22-nd operation on the suffix starting at a_4a\_4 33 times, making the array \[−3,−3,−2,−2]\[-3,-3,-2,-2].
  • Use the 22-nd operation on the suffix starting at a_3a\_3 once, making the array \[−3,−3,−3,−3]\[-3,-3,-3,-3].

예제1

  1. 예제 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
    
    예상 출력
    0
    1
    3
    4
    6
    5
    2847372102