#J1074. 循环位移

循环位移

题目描述

给定一个正整数序列 a1,a2,...,ana_1,a_2,...,a_n,定义一个循环位移操作为将序列中第一个元素移动到序列末尾,序列中其他元素向前移动一个位置。如序列 a=[1,3,3,4,5]a=[1,3,3,4,5],进行一次循环位移后变成了 a=[3,3,4,5,1]a=[3,3,4,5,1]
现在给定一个序列,请你判断一下能否通过若干次循环移位将该序列变成一个非降序列。一个长度为 nn 的序列被称为非降序列,当且仅当满足 a1a2...ana_1\le a_2\le ... \le a_n

输入格式

第一行输入一个整数 n(1n1000)n(1\le n\le 1000),表示序列长度。
第二行输入 nn 个正整数 a1,a2,...,an(1ai10000)a_1,a_2,...,a_n(1\le a_i\le 10000),依次表示序列中的元素。

输出格式

若能够通过循环移位使序列变成非降的,则输出 YES ,否则输出 NO

输入输出样例 #1

输入 #1

5
3 4 5 1 2

输出 #1

YES

输入输出样例 #2

输入 #2

5
1 3 4 5 3

输出 #2

NO

说明/提示

对于第一个样例,我们可以进行 33 次循环位移操作,序列变成 [1,2,3,4,5][1,2,3,4,5],为非降序列。
对于第二个样例,无论如何都不能将序列变成非降序列。