#P16875. [GKS 2022 #B] Unlock the Padlock

[GKS 2022 #B] Unlock the Padlock

Problem Description

Imagine you have a padlock, which is a combination lock consisting of NN dials, set initially to a random combination. The dials of the padlock are of size DD, which means that they can have values between 00 and D1D - 1, inclusive, and can be rotated upwards or downwards. They are also ordered from left to right, with the leftmost and rightmost dials at positions 11 and NN, respectively. The padlock can be unlocked by setting the values of all its dials to 00.

You can perform 00 or more operations of this kind:

  • Pick any range [l,r][l, r] such that 1lrN1 \le l \le r \le N and rotate all the dials in [l,r][l, r] together, upwards or downwards. Rotating up increases the value of each dial in the range [l,r][l, r] by 11, and rotating down decreases its value by 11. Note that a dial with value D1D - 1 becomes 00 when increased (rotated up) and a dial with value 00 becomes D1D - 1 when decreased (rotated down).

The series of operations must satisfy the following condition:

  • The range [li1,ri1][l_{i-1}, r_{i-1}] chosen in the (i1)(i - 1)-th operation needs to be completely contained within the range [li,ri][l_i, r_i] chosen in the ii-th operation; that is, lili1ri1ril_i \le l_{i-1} \le r_{i-1} \le r_i. The initial range ([l1,r1])([l_1, r_1]) can be chosen arbitrarily.

Example of a valid sequence of operations to unlock a padlock with initial combination [1,1,2,2,3,3][1, 1, 2, 2, 3, 3]:

  1. Rotate range [5,6][5, 6] downwards.
  2. Rotate range [3,6][3, 6] downwards.
  3. Rotate range [1,6][1, 6] downwards.

The following are some operations that cannot be performed:

  1. Rotating range [1,4][1, 4] after [6,9][6, 9], because [6,9][6, 9] is not completely contained in [1,4][1, 4] (does not satisfy ri1rir_{i-1} \le r_i where ri1=9r_{i-1} = 9 and ri=4r_i = 4).
  2. Rotating range [3,6][3, 6] after [2,7][2, 7].

The goal for you is to output the minimum number of valid operations needed to make all dials in the padlock set to 00.

Input Format

The first line of the input contains the number of test cases, TT. TT test cases follow.

Each test case consists of 22 lines.

The first line of each test case contains 22 integers NN and DD, representing the number of dials in the padlock and the size of the dials, respectively.

The second line of each test case contains NN integers V1,V2,,VNV_1, V_2, \ldots, V_N, where the ii-th integer represents the value of the ii-th dial in the initial combination of the padlock.

Output Format

For each test case, output one line containing Case #xx: yy, where xx is the test case number (starting from 11) and yy is the minimum number of operations needed to unlock the padlock as described in the statement.

2
6 2
1 1 0 1 0 1
6 2
0 1 0 0 1 1
Case #1: 3
Case #2: 2
2
6 10
1 1 2 2 3 3
6 10
1 1 9 9 1 1
Case #1: 3
Case #2: 3

Hint

In Sample Case #11, the minimum number of operations needed to unlock the padlock is 33. We can unlock it using the following operations:

  1. Rotate range [4,4][4, 4] downwards.
  2. Rotate range [3,5][3, 5] downwards.
  3. Rotate range [1,6][1, 6] downwards.

In Sample Case #22, the minimum number of operations needed to unlock the padlock is 22. We can unlock it using the following operations:

  1. Rotate range [3,4][3, 4] upwards.
  2. Rotate range [2,6][2, 6] downwards.

Limits

1T1001 \le T \le 100.

0ViD10 \le V_i \le D - 1, for all ii.

Test Set 11

1N401 \le N \le 40.

D=2D = 2.

Test Set 22

1N401 \le N \le 40.

2D102 \le D \le 10.

Test Set 33

1N4001 \le N \le 400.

2D1092 \le D \le 10^9.