4136: 交换ai和ai+K的值是否可以将A排序成升序
内存限制:1024 MB
时间限制:2.000 S
评测方式:文本比较
命题人:
提交:1
解决:1
题目描述
# K Swap
## 题目描述
有一个长度为$N$的序列$A=(a_1,...,a_N)$。此外,给定一个整数$K$。
你可以执行以下操作零次或多次:
- 选择一个满足$1 ≤ i ≤ N-K$的整数i,然后交换$a_i$和$a_{i+K}$的值。
判断是否可以将$A$排序成升序。
输入
## 输入格式
输入从标准输入中以下列格式给出:
$N$ $K$
$a_1$ ... $a_N$
输出
## 输出格式
如果可以将$A$排序成升序,输出`Yes`;否则,输出`No`。
样例输入 复制
5 2
3 4 1 3 4
样例输出 复制
Yes
提示
## 输入输出样例
### 输入样例1
```
5 2
3 4 1 3 4
```
### 输出样例1
```
Yes
```
### 输入样例2
```
5 3
3 4 1 3 4
```
### 输出样例2
```
No
```
### 输入样例3
```
7 5
1 2 3 4 5 5 10
```
### 输出样例3
```
Yes
```
## 数据范围与提示
【样例1说明】
可以通过以下操作序列将$A$排序成升序:
1. 选择$i=1$交换$a_1$和$a_3$的值。序列变为(1,4,3,3,4)。
2. 选择$i=2$交换$a_2$和$a_4$的值。序列变为(1,3,3,4,4)。
【样例3说明】
可能不需要进行任何操作。
【数据范围】
- $2 ≤ N ≤ 2 × 10^5$
- $1 ≤ K ≤ N-1$
- $1 ≤ a_i ≤ 10^9$
- 所有输入均为整数。
## 题目来源
ABC254C