CF1635B.Avoid Local Maximums

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Avoid Local Maximums

You are given an array aa of size nn. Each element in this array is an integer between 11 and 10910^9.

You can perform several operations to this array. During an operation, you can replace an element in the array with any integer between 11 and 10910^9.

Output the minimum number of operations needed such that the resulting array doesn't contain any local maximums, and the resulting array after the operations.

An element aia_i is a local maximum if it is strictly larger than both of its neighbors (that is, ai>ai1a_i \gt a_{i - 1} and ai>ai+1a_i \gt a_{i + 1}). Since a1a_1 and ana_n have only one neighbor each, they will never be a local maximum.

Input

Each test contains multiple test cases. The first line will contain a single integer tt (1t10000)(1 \leq t \leq 10000) — the number of test cases. Then tt test cases follow.

The first line of each test case contains a single integer nn (2n2105)(2 \leq n \leq 2 \cdot 10^5) — the size of the array aa.

The second line of each test case contains nn integers a1,a2,,ana_1, a_2, \ldots ,a_n (1ai109)(1 \leq a_i \leq 10^9), the elements of array.

It is guaranteed that the sum of nn over all test cases does not exceed 21052 \cdot 10^5.

Output

For each test case, first output a line containing a single integer mm — minimum number of operations required. Then ouput a line consist of nn integers — the resulting array after the operations. Note that this array should differ in exactly mm elements from the initial array.

If there are multiple answers, print any.

Note

In the first example, the array contains no local maximum, so we don't need to perform operations.

In the second example, we can change a2a_2 to 33, then the array don't have local maximums.

Samples

5
3
2 1 2
4
1 2 3 1
5
1 2 1 2 1
9
1 2 1 3 2 3 1 2 1
9
2 1 3 1 3 1 3 1 3
0
2 1 2
1
1 3 3 1
1
1 2 2 2 1
2
1 2 3 3 2 3 3 2 1
2
2 1 3 3 3 1 1 1 3

在线编程 IDE

建议全屏模式获得最佳体验