题目描述
给定一个长度为 N 的整数序列 A=(A1,A2,…,AN)。
你需要对 A 恰好执行一次以下操作。
- 选择一个 1 到 N−K+1 之间的整数 i(含两端)。将 Ai,Ai+1,…,Ai+K−1 按升序排序。更形式化地说,设 B1,B2,…,BK 是把 Ai,Ai+1,…,Ai+K−1 按从小到大排列后得到的序列,同时对每个 1≤j≤K 用 Bj 替换 Ai+j−1。
判断在执行该操作后,能否使 A 升序,即对所有 1≤i<N 都有 Ai≤Ai+1。
输入格式
输入按以下格式从标准输入读入:
- N K
- A1 A2 … AN
输出格式
如果恰好执行一次操作后能把 A 升序排序,则输出 Yes,否则输出 No。
9 6
1 4 1 4 2 1 3 5 6
Yes
例如,若选择 i=2,则 (A2,A3,A4,A5,A6,A7)=(4,1,4,2,1,3) 会被替换为 (1,1,2,3,4,4)。操作后 A 为 (1,1,1,2,3,4,4,5,6),满足条件。
因此输出 Yes。
3 1
3 2 1
No
由于 K=1,无论选择哪个 i 执行操作,A 都不会发生变化。因此输出 No。
30 25
1 2 2 22 14 10 14 10 18 5 15 8 17 22 10 17 11 25 13 16 9 19 26 7 11 12 23 3 30 30
Yes
数据范围
子任务设置
- 子任务 1(30 分):N≤2000。
- 子任务 2(70 分):无特殊限制。