Code:
#include#include #include #include #include #include using namespace std;void setIO(string a){ freopen((a+".in").c_str(),"r",stdin),freopen((a+".out").c_str(),"w",stdout); }void shutIO(){fclose(stdin),fclose(stdout);}#define maxn 500009int val[maxn];struct Node{ int val,h; Node(int val=0,int h=0):val(val),h(h){}};stack S;int main(){ //setIO("wait"); int n,a; long long ans=0; scanf("%d",&n); for(int i=1;i<=n;++i) scanf("%d",&val[i]); S.push(Node(1,val[1])); for(int i=2;i<=n;++i){ a=0; while(!S.empty()&&S.top().h