Array of integers is unimodal, if:

  • it is strictly increasing in the beginning;
  • after that it is constant;
  • after that it is strictly decreasing.

The first block (increasing) and the last block (decreasing) may be absent. It is allowed that both of this blocks are absent.

For example, the following three arrays are unimodal: [5, 7, 11, 11, 2, 1], [4, 4, 2],[7], but the following three are not unimodal: [5, 5, 6, 6, 1], [1, 2, 1, 2], [4, 5, 5, 6].

Write a program that checks if an array is unimodal.

Input

The first line contains integer n (1 ≤ n ≤ 100) — the number of elements in the array.

The second line contains n integers a1, a2, ..., an (1 ≤ ai ≤ 1 000)
— the elements of the array.

Output

Print "YES" if the given array is unimodal. Otherwise, print "NO".

You can output each letter in any case (upper or lower).

Example

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

Note

In the first example the array is unimodal, because it is strictly increasing in the beginning (from position 1 to position 2, inclusively), that it is constant (from position 2 to
position 4, inclusively) and then it is strictly decreasing (from position 4 to position 6, inclusively).

题解:这是一道判断一组数是是不是单峰的问题,且满足左边严格增加,中间平,最后严格减。

代码为:

#include<iostream>

#include<cstdio>

using namespace std;

#define MAXN 110

int a[MAXN];

int main()

{

    int n;

    while(cin>>n)

    {

        for(int i=1;i<=n;i++)

            cin>>a[i];

       

        int p=2;

        while(a[p]>a[p-1]) p++;

        while(a[p]==a[p-1]) p++;

        while(a[p]<a[p-1]) p++;

        if(p<=n) 
cout<<"NO"<<endl;

        else 
cout<<"YES"<<endl;

    }

    return 0;

}

最新文章

  1. Vue.js与MVVM
  2. 使用git grep进行git搜索
  3. Asp.Net Mvc + ComBoost.Mvc快速开发
  4. java异常处理的设计
  5. Ubuntu 16.04 安装ftp服务器传输文件
  6. 异步编程之Javascript Promises 规范介绍
  7. Python性能提升小技巧
  8. empty isset array_key_exists 的区别
  9. char 转wchar_t 及wchar_t转char
  10. 用Delphi获取当前系统时间
  11. PHP 单一入口
  12. 在Linux下查看环境变量
  13. Eclipse PHP 代码无法自动提示函数
  14. View 的measure 和onMeasure
  15. C/C++ 知识点---C语言关键字(32个)
  16. 通过数据分析告诉你北京Python开发的现状
  17. Python基础训练题-简单数学公式
  18. 2018 湖南网络比赛题 HDU - 6286 (容斥)
  19. C# 枚举值 (二) 多属性 操作
  20. Thinkphp5 关联模型

热门文章

  1. MySQL原生PHP操作-天龙八步
  2. (Codeforce)The number of positions
  3. 019.Kubernetes二进制部署插件dashboard
  4. [笔记] HOW2J.CN网站记录的java笔记_第四部分_HTML
  5. nyoj 399-整除个数 (整除)
  6. nyoj 122-Triangular Sums (数学之读懂求和公式的迭代)
  7. nyoj 273-字母小游戏 (getline(cin, string))
  8. 力扣(LeetCode)Excel表列名称 个人题解
  9. 使用ndk交叉编译android各平台版本的第三方库
  10. MySQL基础知识面试与答案