1546: 阿正的换位排序

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:0 解决:21

题目描述

阿正在有了一定的算法知识后,不禁感慨到“排序真是个经典的问题!”。 



这天阿正同学正在研究排序算法,他发现有交换元素的位置是完成排序的必要条件。所以阿正决定返璞归真,从交换相邻元素入手,完成排序过程。  

但是阿正发现只交换相邻两个元素完成排序效率实在是太低了。不过没关系,“大部分高性能的算法都是从低性能算法的基础上优化而来的”你这样安慰阿正道。 



但是阿正还是心怀不甘,说将一个长度为n的序列完成非递减排序一定可以在 [n*(n-1)]/2 -1 步内完成。但是你觉得这个结论明显是错误的,所以不甘心的阿正和你理论了起来。  

阿正随机写下了若干个序列,你的任务是判断这若干个序列能否在 [n*(n-1)]/2 -1 步内完成排序。 

输入

多实例输入 

每组数据第一行一个正整数n,代表序列长度;(2<=n<=100000) 

每组数据第二行包含n个非负整数,依次代表序列各元素。 

测试数据保证全部样例n的和不超过100000,其他数据保证在整形范围内。 

输出

每组数据对应一行。 

若可以在规定步数内完成排序,请输入“Yes”,否则请输入“No”。(输出不带引号) 

样例输入 复制

5
5 3 2 1 4
6
3 5 4 2 7 5

样例输出 复制

Yes
Yes

提示

对于第一组数据,可以按以下方案进行交换完成阿正的“换位排序”: 

交换四号元素“1”与三号元素“2”:[5 3 2 1 4]->[5 3 1 2 4] 

交换三号元素“1”与二号元素“3”:[5 3 1 2 4]->[5 1 3 2 4] 

交换二号元素“1”与一号元素“5”:[5 1 3 2 4]->[1 5 3 2 4] 

交换四号元素“2”与三号元素“3”:[1 5 3 2 4]->[1 5 2 3 4] 

交换三号元素“2“与二号元素”5“:[1 5 2 3 4]->[1 2 5 3 4] 

交换四号元素“3”与三号元素”5“:[1 2 5 3 4]->[1 2 3 5 4] 

交换五号元素“4“与三号元素”5“:[1 2 3 5 4]->[1 2 3 4 5] 

按上述步骤可以在最小的步数(共七步)内完成排序,由于n=5[n*(n-1)]/2-1=9,七步小于九步,故输出Yes。 

来源/分类