CF1635B.Avoid Local Maximums

入门

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

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>ai−1a_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.

给你一个大小为 nn 的数组 aa。该数组中的每个元素均为 11 到 10910^9 之间的整数。

你可以对该数组执行若干次操作。每次操作中,你可以将数组中的某个元素替换为 11 到 10910^9 之间的任意整数。

请输出使得最终数组中不包含任何局部最大值所需的最少操作次数,以及执行这些操作后得到的数组。

若某个元素 aia_i 严格大于其两侧相邻元素(即 ai>ai−1a_i \gt a_{i - 1} 且 ai>ai+1a_i \gt a_{i + 1}),则称其为局部最大值。由于 a1a_1 和 ana_n 各只有一个邻居,因此它们永远不会成为局部最大值。

输入格式

Each test contains multiple test cases. The first line will contain a single integer tt (1≤t≤10000)(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 (2≤n≤2⋅105)(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 (1≤ai≤109)(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 2⋅1052 \cdot 10^5.

每个测试包含多个测试用例。第一行包含一个整数 tt(1≤t≤100001 \leq t \leq 10000)—— 测试用例的数量。随后是 tt 个测试用例。

每个测试用例的第一行包含一个整数 nn(2≤n≤2⋅1052 \leq n \leq 2 \cdot 10^5)—— 数组 aa 的大小。

每个测试用例的第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \ldots ,a_n(1≤ai≤1091 \leq a_i \leq 10^9),即数组的元素。

保证所有测试用例中 nn 的总和不超过 2⋅1052 \cdot 10^5。

输出格式

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.

对于每个测试用例,首先输出一行,包含一个整数 mm —— 所需的最少操作次数。然后输出一行,包含 nn 个整数 —— 经过操作后得到的数组。注意,该数组应恰好与初始数组在 mm 个元素上不同。

如果存在多个答案,输出任意一个即可。

输入输出样例

  • 输入#1

    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

    输出#1

    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

说明/提示

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.

在第一个例子中,数组不包含任何局部最大值,因此无需执行任何操作。

在第二个例子中,我们可以将 a2a_2 修改为 33,此时数组不再含有局部最大值。

输入解题思路,AI测评打分。不知道怎么写?

首页