write a go solution for Description: You are given an array a of size n. Each element in this array is an integer between 1 and 10^9. You can perform several operations to this array. During an operation, you can replace an element in the array with any integer between 1 and 10^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 a_i is a local maximum if it is strictly larger than both of its neighbors (that is, a_i>a_i-1 and a_i>a_i+1). Since a_1 and a_n have only one neighbor each, they will never be a local maximum. Input Format: Each test contains multiple test cases. The first line will contain a single integer t (1<=t<=10000) — the number of test cases. Then t test cases follow. The first line of each test case contains a single integer n (2<=qn<=q2*10^5) — the size of the array a. The second line of each test case contains n integers a_1,a_2,ldots,a_n (1<=a_i<=10^9), the elements of array. It is guaranteed that the sum of n over all test cases does not exceed 2*10^5. Output Format: For each test case, first output a line containing a single integer m — minimum number of operations required. Then ouput a line consist of n integers — the resulting array after the operations. Note that this array should differ in exactly m 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 a_2 to 3, then the array don't have local maximums.. Output only the code with no comments, explanation, or additional text.