CF1733C.Parity Shuffle Sorting
普及-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given an array a with n non-negative integers. You can apply the following operation on it.
- Choose two indices l and r (1≤l<r≤n).
- If al+ar is odd, do ar:=al. If al+ar is even, do al:=ar.
Find any sequence of at most n operations that makes a non-decreasing. It can be proven that it is always possible. Note that you do not have to minimize the number of operations.
An array a1,a2,…,an is non-decreasing if and only if a1≤a2≤…≤an.
给你一个包含 n 个非负整数的数组 a。你可以对它执行以下操作:
- 选择两个下标 l 和 r(满足 1≤l<r≤n);
- 若 al+ar 为奇数,则令 ar:=al;若 al+ar 为偶数,则令 al:=ar。
请找出任意一个至多包含 n 次操作的操作序列,使得数组 a 变为非递减序列。可以证明这样的序列总是存在的。注意:你无需最小化操作次数。
数组 a1,a2,…,an 是非递减的,当且仅当 a1≤a2≤…≤an。
输入格式
The first line contains one integer t (1≤t≤105) — the number of test cases.
Each test case consists of two lines. The first line of each test case contains one integer n (1≤n≤105) — the length of the array.
The second line of each test case contains n integers a1,a2,…,an (0≤ai≤109) — the array itself.
It is guaranteed that the sum of n over all test cases doesn't exceed 105.
第一行包含一个整数 t(1≤t≤105)—— 测试用例的数量。
每个测试用例由两行组成。每个测试用例的第一行包含一个整数 n(1≤n≤105)—— 数组的长度。
每个测试用例的第二行包含 n 个整数 a1,a2,…,an(0≤ai≤109)—— 数组本身。
保证所有测试用例的 n 之和不超过 105。
输出格式
For each test case, print one integer m (0≤m≤n), the number of operations, in the first line.
Then print m lines. Each line must contain two integers li,ri, which are the indices you chose in the i-th operation (1≤li<ri≤n).
If there are multiple solutions, print any of them.
对于每个测试用例,在第一行输出一个整数 m(0≤m≤n),表示操作次数。
然后输出 m 行。每行必须包含两个整数 li,ri,表示第 i 次操作中所选择的下标(1≤li<ri≤n)。
若存在多种解法,输出任意一种即可。
输入输出样例
输入#1
3 2 7 8 5 1 1000000000 3 0 5 1 0
输出#1
0 2 3 4 1 2 0
说明/提示
In the second test case, a changes like this:
- Select indices 3 and 4. a3+a4=3 is odd, so do a4:=a3. a=[1,1000000000,3,3,5] now.
- Select indices 1 and 2. a1+a2=1000000001 is odd, so do a2:=a1. a=[1,1,3,3,5] now, and it is non-decreasing.
In the first and third test cases, a is already non-decreasing.
在第二个测试用例中,数组 a 的变化过程如下:
- 选择下标 3 和 4。由于 a3+a4=3 是奇数,执行操作 a4:=a3。此时 a=[1,1000000000,3,3,5]。
- 选择下标 1 和 2。由于 a1+a2=1000000001 是奇数,执行操作 a2:=a1。此时 a=[1,1,3,3,5],已变为非递减序列。
在第一个和第三个测试用例中,数组 a 本身已经是非递减的。
输入解题思路,AI测评打分。不知道怎么写?