#JX202530038. 交换游戏

交换游戏

题目描述

给定一个 11nn 的排列 pp 和一个正整数 kk

你可以对 pp 进行若干次操作,每次操作交换 pip_ipjp_j,其中 ij=k|i-j|=k。你的目标是使得 pp 变为升序。

除此之外,在开始你的操作之前,你还可以预先交换任意两个 pip_ipjp_j 一次。

你的任务是判断:

  1. 能否在不用预先交换的情况下,使得 pp 变为升序;
  2. 如果不能,能否在预先交换一次的情况下,使得 pp 变为升序。

输入格式

本题有多组数据。第一行输入数据组数 tt1t1041\le t\le10^4)。

对于每组数据,第一行输入 nnkk,第二行输入 nn 个整数,其中第 ii 个整数表示 pip_i

输出格式

对于每组数据:

  • 如果满足条件 1 输出一行 0
  • 如果不满足条件 1 但满足条件 2 输出一行 1
  • 如果条件 1, 2 都不满足输出一行 -1

输入输出样例 #1

输入 #1

6
4 1
3 1 2 4
4 2
3 4 1 2
4 2
3 1 4 2
10 3
4 5 9 1 8 6 10 2 3 7
10 3
4 6 9 1 8 5 10 2 3 7
10 3
4 6 9 1 8 5 10 3 2 7

输出 #1

0
0
1
0
1
-1

说明/提示

1t1041\le t\le10^42n2×1052\le n\le2\times10^51kn11\le k\le n-11pin1\le p_i\le n

每组数据的 nn 的总和 n2×105\sum n\le2\times10^5