CF1553E.Permutation Shift

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

An identity permutation of length nn is an array [1,2,3,,n][1, 2, 3, \dots, n] .

We performed the following operations to an identity permutation of length nn :

  • firstly, we cyclically shifted it to the right by kk positions, where kk is unknown to you (the only thing you know is that 0kn10 \le k \le n - 1 ). When an array is cyclically shifted to the right by kk positions, the resulting array is formed by taking kk last elements of the original array (without changing their relative order), and then appending nkn - k first elements to the right of them (without changing relative order of the first nkn - k elements as well). For example, if we cyclically shift the identity permutation of length 66 by 22 positions, we get the array [5,6,1,2,3,4][5, 6, 1, 2, 3, 4] ;
  • secondly, we performed the following operation at most mm times: pick any two elements of the array and swap them.

You are given the values of nn and mm , and the resulting array. Your task is to find all possible values of kk in the cyclic shift operation.

输入格式

The first line contains one integer tt ( 1t1051 \le t \le 10^5 ) — the number of test cases.

Each test case consists of two lines. The first line contains two integers nn and mm ( 3n31053 \le n \le 3 \cdot 10^5 ; 0mn30 \le m \le \frac{n}{3} ).

The second line contains nn integers p1,p2,,pnp_1, p_2, \dots, p_n ( 1pin1 \le p_i \le n , each integer from 11 to nn appears in this sequence exactly once) — the resulting array.

The sum of nn over all test cases does not exceed 31053 \cdot 10^5 .

输出格式

For each test case, print the answer in the following way:

  • firstly, print one integer rr ( 0rn0 \le r \le n ) — the number of possible values of kk for the cyclic shift operation;
  • secondly, print rr integers k1,k2,,krk_1, k_2, \dots, k_r ( 0kin10 \le k_i \le n - 1 ) — all possible values of kk in increasing order.

输入输出样例

  • 输入#1

    4
    4 1
    2 3 1 4
    3 1
    1 2 3
    3 1
    3 2 1
    6 0
    1 2 3 4 6 5

    输出#1

    1 3
    1 0
    3 0 1 2
    0

说明/提示

Consider the example:

  • in the first test case, the only possible value for the cyclic shift is 33 . If we shift [1,2,3,4][1, 2, 3, 4] by 33 positions, we get [2,3,4,1][2, 3, 4, 1] . Then we can swap the 33 -rd and the 44 -th elements to get the array [2,3,1,4][2, 3, 1, 4] ;
  • in the second test case, the only possible value for the cyclic shift is 00 . If we shift [1,2,3][1, 2, 3] by 00 positions, we get [1,2,3][1, 2, 3] . Then we don't change the array at all (we stated that we made at most 11 swap), so the resulting array stays [1,2,3][1, 2, 3] ;
  • in the third test case, all values from 00 to 22 are possible for the cyclic shift:
    • if we shift [1,2,3][1, 2, 3] by 00 positions, we get [1,2,3][1, 2, 3] . Then we can swap the 11 -st and the 33 -rd elements to get [3,2,1][3, 2, 1] ;
    • if we shift [1,2,3][1, 2, 3] by 11 position, we get [3,1,2][3, 1, 2] . Then we can swap the 22 -nd and the 33 -rd elements to get [3,2,1][3, 2, 1] ;
    • if we shift [1,2,3][1, 2, 3] by 22 positions, we get [2,3,1][2, 3, 1] . Then we can swap the 11 -st and the 22 -nd elements to get [3,2,1][3, 2, 1] ;
  • in the fourth test case, we stated that we didn't do any swaps after the cyclic shift, but no value of cyclic shift could produce the array [1,2,3,4,6,5][1, 2, 3, 4, 6, 5] .
首页