众所周知,在只交换相邻元素的前提下,可以对一个数组进行完整的排序操作 现在只能交换下标或者值的差值为的元素,即对于,如果或者,则可交换的值 假设交换是连续进行的,你可以无限次的执行交换操作,每一次交换操作建立在之前的基础上,给定一个长度为的数组,数组的值互不相同,问是否能在这个限制条件下实现升序排序
输入描述:
第一行输入两个正整数接下来一行输入个互不相同的正整数


输出描述:
如果可以,请输出"Yes",否则输出"No"
示例1

输入

6 5
3 2 11 4 5 1

输出

No

说明

无论如何都不可能排序成功
示例2

输入

6 5
3 2 8 4 5 1

输出

Yes

说明

因为8-3=5,所以先交换38,数组变为[8,2,3,4,5,1]
然后由于a_1=8,a_6=1,6-1=5交换a_1a_6,数组变为[1,2,3,4,5,8]
符合题目要求
示例3

输入

1 1
1

输出

Yes

说明

只有一个数字时不需要交换,默认就是有序的
示例4

输入

3 2
3 1 2

输出

No

说明

如果3先和1交换,那么交换后3永远可不可能和2交换到正确的位置
如果3先和2交换,那么交换后12永远也不可能交换到正确的位置
故无解
加载中...