zoukankan      html  css  js  c++  java
  • Codeforces Round #527 (Div. 3)D(栈,思维)

    #include<bits/stdc++.h>
    using namespace std;
    int a[200007];
    stack<int>s;
    int main(){
        int n;
        int mn=0;
        scanf("%d",&n);
        for(int i=1;i<=n;i++){
            scanf("%d",&a[i]);
            if(a[i]>mn)
                mn=a[i];
        }
        s.push(a[1]);
        int x=0;
        for(int i=2;i<=n;i++){
            if(!s.empty()){
                x=s.top();
                if(a[i]==x)
                    s.pop();
                else{
                    if(a[i]>x){
                        printf("NO");
                        return 0;
                    }
                    s.push(a[i]);
                }
            }
            else
                s.push(a[i]);
        }
        int y=s.size();
        if(y<=1){
            if(y==1&&s.top()!=mn)//如果栈内剩下的是最大的元素,它无需与其它元素一同++,非最大是无法和其他一起++的,缺少该判断惨遭hack
                printf("NO");
            else
                printf("YES");
        }
        else
            printf("NO");
        return 0;
    }
    //类似括号匹配

    保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
  • 相关阅读:
    bzoj1084
    bzoj1088 [SCOI2005]扫雷
    [LUOGU] 1892 团伙
    [普及组] 2017 成绩
    [LUOGU] P2661 信息传递
    [LUOGU] P1339 [USACO09OCT]热浪Heat Wave
    [LUOGU] P1828 香甜的黄油 Sweet Butter
    [模板] 单源最短路径
    [LUOGU] 1717 钓鱼
    [UVA] 704 Colour Hash
  • 原文地址:https://www.cnblogs.com/ldudxy/p/10155259.html
Copyright © 2011-2022 走看看