• 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;
    }
    //类似括号匹配

    保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
  • 相关阅读:
    jQuery基础
    深入理解JVM内存模型(jmm)和GC
    oracle,哪些操作会导致索引失效?
    systemd
    一个我小时候玩过的我是猪不然关机的软件,我高仿了一个,超简单。
    自己写的求最大值实现,用到了模板函数。
    poj 1695
    poj 1192
    poj 1239
    poj 1170
  • 原文地址:https://www.cnblogs.com/ldudxy/p/10155259.html
Copyright © 2020-2023  润新知