5750: 【固定滑窗】百度2023秋招-交换一次获得长度为k的排列
金币值:
1
时间限制:2.000 s
内存限制:128 M
正确:16
提交:49
正确率:32.65% 命题人:
题目描述
小红有一个长度为n的排列,她可以选择两个位置,然后交换两个位置的数。
她想知道能否通过最多一次交换,使得存在一个连续子段,是长度为k的排列。
排列是指一个长度为 len 的整数数组,数组中包含1到len的每个数,且每个数只出现一次。
输入格式
第一行两个整数n,k,表示排列长度和连续子段长度。
第二行n个整数a1, a2, ..., an,表示排列。
1 <= k <= n <= 10^5
输出格式
如果能够通过最多一次交换,存在一个连续子段是排列,输出YES,并输出交换的位置:先输出一个整数x (0 <= x <= 1),然后输出x行,每行两个整数u, v,表示交换位置u, v (u < v)
否则输出NO。
输入样例 复制
5 3
1 2 3 4 5
输出样例 复制
YES
0