本题与「一次交换找k排列」描述的计算任务一致。按输入格式读入数据后,沿用原题解的算法即可。
详见下方代码实现。
给定 1…n 的排列。最多交换一次两个位置,问是否存在长度为 k 的连续子段构成排列。若能,输出 YES 及交换方案;否则 NO。
第一行 n,k。第二行 n 个整数。1≤k≤n≤105。
能则第一行 YES,第二行整数 x(0 或 1),若 x=1 再一行两个位置 u,v。否则一行 NO。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.