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

    保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
  • 相关阅读:
    调试脚本
    if [ $? -eq 0 ]的含义
    主键和索引的区别
    Docker守护式容器
    Docker容器的基本操作
    Linux下Docker的安装
    Linux下查看占用CPU资源最多的几个进程
    报错:pymysql.err.InternalError: (1054, "Unknown column 'AType' in 'field list'")
    在webpack中使用postcss-px2rem的
    vue环境配置脚手架环境搭建vue工程目录
  • 原文地址:https://www.cnblogs.com/ldudxy/p/10155259.html
Copyright © 2011-2022 走看看