1. 程式人生 > >Codeforces Round #527 (Div. 3)D2(棧,思維)

Codeforces Round #527 (Div. 3)D2(棧,思維)

括號匹配 font amp hack style def sca emp empty

#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(棧,思維)