#P17685. [IO 2025 #2] 连续取模
[IO 2025 #2] 连续取模
题目描述
给定一个排列 ,即从 到 的每个整数都在数组中恰好出现一次。
你可以进行如下操作:选择下标 ,将 替换为 。由于不能除以 ,操作时必须满足 。这里 表示取余运算,在大多数编程语言中用 % 表示。
请找出任意一个合法的操作序列,操作次数不超过 ,使操作完成后的数组中至少有一个元素等于 ;或者报告不存在这样的操作序列。注意,不需要最小化操作次数。
输入格式
第一行包含整数 ,表示测试用例数,满足 。
每个测试用例的第一行包含整数 ,表示数组长度,满足 。
第二行包含 个整数 ,满足 。保证从 到 的每个整数都恰好出现一次。
保证所有测试用例的 之和不超过 。
输出格式
对每个测试用例,如果不存在符合要求的操作序列,输出 。
否则,第一行输出操作次数 ,满足 ;接下来 行各输出一个整数 ,满足 ,按执行顺序给出每次操作的下标。任何一次操作若遇到 ,输出都会被判为错误。所有操作完成后,数组中必须至少有一个元素等于 。
不需要最小化操作次数。如果有多种答案,可以输出任意一种。
4
3
1 3 2
4
4 1 2 3
2
1 2
9
1 2 3 9 7 5 6 4 8
2
2
1
1
1
-1
6
6
4
7
3
8
2