Codeforces Round 868 (Div. 2)
B
Sort with Step
Codeforces
900
原题
← AC →
翻译中…

Let's define a permutation of length $n$ as an array $p$ of length $n$, which contains every number from $1$ to $n$ exactly once.

翻译中…

You are given a permutation $p_1, p_2, \dots, p_n$ and a number $k$. You need to sort this permutation in the ascending order. In order to do it, you can repeat the following operation any number of times (possibly, zero):

翻译中…
  • pick two elements of the permutation $p_i$ and $p_j$ such that $|i - j| = k$, and swap them.
翻译中…

Unfortunately, some permutations can't be sorted with some fixed numbers $k$. For example, it's impossible to sort $[2, 4, 3, 1]$ with $k = 2$.

翻译中…

That's why, before starting the sorting, you can make at most one preliminary exchange:

翻译中…
  • choose any pair $p_i$ and $p_j$ and swap them.
翻译中…

Your task is to:

翻译中…
  1. check whether is it possible to sort the permutation without any preliminary exchanges,
  2. if it's not, check, whether is it possible to sort the permutation using exactly one preliminary exchange.
翻译中…

For example, if $k = 2$ and permutation is $[2, 4, 3, 1]$, then you can make a preliminary exchange of $p_1$ and $p_4$, which will produce permutation $[1, 4, 3, 2]$, which is possible to sort with given $k$.

翻译中…

Input

翻译中…

Each test contains multiple test cases. The first line contains the number of test cases $t$ ($1 \le t \le 10^4$). The description of the test cases follows.

翻译中…

The first line of each test case contains two integers $n$ and $k$ ($2 \le n \le 2 \cdot 10^5$; $1 \le k \le n - 1$) — length of the permutation, and a distance between elements that can be swapped.

翻译中…

The second line of each test case contains $n$ integers $p_1, p_2, \dots, p_n$ ($1 \le p_i \le n$) — elements of the permutation $p$.

翻译中…

It is guaranteed that the sum of $n$ over all test cases does not exceed $2 \cdot 10 ^ 5$.

翻译中…

Output

翻译中…

For each test case print

翻译中…
  • 0, if it is possible to sort the permutation without preliminary exchange;
  • 1, if it is possible to sort the permutation with one preliminary exchange, but not possible without preliminary exchange;
  • -1, if it is not possible to sort the permutation with at most one preliminary exchange.
翻译中…

Note

翻译中…

In the first test case, there is no need in preliminary exchange, as it is possible to swap $(p_1, p_2)$ and then $(p_2, p_3)$.

翻译中…

In the second test case, there is no need in preliminary exchange, as it is possible to swap $(p_1, p_3)$ and then $(p_2, p_4)$.

翻译中…

In the third test case, you need to apply preliminary exchange to $(p_2, p_3)$. After that the permutation becomes $[3, 4, 1, 2]$ and can be sorted with $k = 2$.

翻译中…

样例

Input #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
Output #1
0
0
1
0
1
-1
InputCopy OutputCopy
题目信息
题号
1823B
时间限制
1 s
内存限制
256 MB
标签
暴力
数学
排序

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。