zoukankan      html  css  js  c++  java
  • Peak

    A sequence of (n) integers (a_1, a_2, dots, a_n) is called a peak, if and only if there exists exactly one integer (k) such that (1 < k < n), and (a_i < a_{i+1}) for all (1 le i < k), and (a_{i-1} > a_i) for all (k < i le n).

    Given an integer sequence, please tell us if it's a peak or not.

    Input
    There are multiple test cases. The first line of the input contains an integer (T), indicating the number of test cases. For each test case:

    The first line contains an integer (n) ((3 le n le 10^5)), indicating the length of the sequence.

    The second line contains (n) integers (a_1, a_2, dots, a_n) ((1 le a_i le 2 imes 10^9)), indicating the integer sequence.

    It's guaranteed that the sum of (n) in all test cases won't exceed (10^6).

    Output
    For each test case output one line. If the given integer sequence is a peak, output "Yes" (without quotes), otherwise output "No" (without quotes).

    Sample Input
    7
    5
    1 5 7 3 2
    5
    1 2 1 2 1
    4
    1 2 3 4
    4
    4 3 2 1
    3
    1 2 1
    3
    2 1 2
    5
    1 2 3 1 2
    Sample Output
    Yes
    No
    No
    No
    Yes
    No
    No

    #include<bits/stdc++.h>
    
    using namespace std;
    int a[1000005];
    int main()
    {
        int t;;
        cin>>t;
        while(t--){
            int f=1;
            int n;
            cin>>n;
            for(int i=0;i<n;i++){
                cin>>a[i];
            }
            int pos=-1;
            for(int i=0;i<n;i++){
                if(i!=0&&i!=n-1){
                    if(a[i-1]<a[i] && a[i]>a[i+1]){
                        pos=i;
                    }
                }
            }
            //cout<<pos<<" "<<a[pos]<<endl;
            for(int i=0;i<n;i++){
                if(i<pos){
                    if(a[i]>=a[i+1]) f=0;
                }
                if(i>pos){
                    if(a[i]>=a[i-1]) f=0;
                }
            }
            f?puts("Yes"):puts("No");
        }
    }
    
    
  • 相关阅读:
    js基础:关于Boolean() 与 if
    @@cursor_rows变量解析
    SQL Prompt
    google android sdk下载hoosts
    java环境配置
    Linux grep用法整理
    bash调试执行
    Vim常见快捷键汇总
    Linux查看磁盘块大小
    Linux Bash终端快捷键小结
  • 原文地址:https://www.cnblogs.com/Roni-i/p/8970910.html
Copyright © 2011-2022 走看看