CF831A.Unimodal Array

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Unimodal Array

题目描述

一个整数数组是单峰的,如果:

一开始它是严格增加的;

之后是恒定不变的;

再后是严格减少的;

第一块(增加)和最后一块(减少)可能不存在。允许这两块都不存在。

例如,下面这三个数组是单峰的:

[5,7,11,11,2,1],[4,4,2],[7][5,7,11,11,2,1] , [4,4,2] , [7]

但是,下面这三个不是单峰的:

[5,5,6,6,1],[1,2,1,2],[4,5,5,6][5,5,6,6,1] , [1,2,1,2] , [4,5,5,6]

写一个程序来判断一个数组是否是单峰的。

输入格式

第一行包含一个整数 nn1n1001\leq n\leq 100 ) — 这个数组中元素的个数。

第二行包含nn 个整数a1,a2,,ana_1,a_2,\dots,a_n1ai10001\leq a_i\leq 1000 ) — 数组中的元素。

输出格式

如果,被给出的这个元素是单峰的,输出"YES",否则输出"NO"。

在任何情况,你都能输出每个字母(上面的或下面的)。

说明/提示

第一个样例中的数组是单峰的,因为它是在开始的时候严格递增(从位置11 到位置22 ,含端点),中间恒定不变(从位置22 到位置44 ,含端点)并在最后严格递减(从位置44 到位置66 ,含端点)。

by @Khassar

样例

6
1 5 5 5 4 2
YES
5
10 20 30 20 10
YES
4
1 2 1 2
NO
7
3 3 3 3 3 3 3
YES

在线编程 IDE

建议全屏模式获得最佳体验