zoukankan      html  css  js  c++  java
  • CF-831A

    A. Unimodal Array
    time limit per test
    1 second
    memory limit per test
    256 megabytes
    input
    standard input
    output
    standard output

    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).

    Examples
    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).

    题意:

    递增,相等,递减只能按顺序出现,否则为“NO”。

    AC代码:

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 
     4 int cmp(int x,int y){
     5     if(x<y)
     6     return 1;
     7     if(x==y)
     8     return 2;
     9     if(x>y)
    10     return 3;
    11 }
    12 
    13 int main(){
    14     int n,x[1010];
    15     cin>>n;
    16     int t=1;
    17     for(int i=0;i<n;i++){
    18         cin>>x[i];
    19     }
    20     for(int i=1;i<n;i++){
    21         if(cmp(x[i-1],x[i])<t){
    22             cout<<"NO"<<endl;
    23             return 0;
    24         }
    25         else{
    26             t=cmp(x[i-1],x[i]);
    27         }
    28     }
    29     cout<<"YES"<<endl;
    30     return 0;
    31 } 
  • 相关阅读:
    pyhton 小技巧
    scikit-learn K近邻法类库使用小结
    机器学习加速方法
    Virtual box安装回退的一系列可能的原因及解决办法
    Linux 定时任务
    Redis 操作命令
    在linux下安装并运行scrapyd
    同步/异步 异步回调 协成 线程队列
    Python常用的标准库以及第三方库有哪些?
    Flask 知识点
  • 原文地址:https://www.cnblogs.com/Kiven5197/p/7229813.html
Copyright © 2011-2022 走看看