Codeforces Round #527 (Div. 3)D2(栈,思维)

Posted ldudxy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces Round #527 (Div. 3)D2(栈,思维)相关的知识,希望对你有一定的参考价值。

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











































以上是关于Codeforces Round #527 (Div. 3)D2(栈,思维)的主要内容,如果未能解决你的问题,请参考以下文章

CodeForces Round #527 (Div3) C. Prefixes and Suffixes

cf codeforces round#527F. Tree with Maximum Cost树形dp

Codeforces Round #527 (Div. 3) 总结 A B C D1 D2 F

Codeforces Round #436 E. Fire(背包dp+输出路径)

[ACM]Codeforces Round #534 (Div. 2)

Error Correct System CodeForces - 527B