提交时间:2024-04-06 11:10:34

运行 ID: 141791

#include<bits/stdc++.h> using namespace std; const int maxn = 500001; int push[maxn],num[maxn]; long long ans=0; int main(){ int n,i,k,p=1,t; cin>>n>>k; push[0]=0x7fffffff; num[0]=0; push[1]=k; num[1]=1; for(i=2;i<=n;i++){ cin>>k; if(k<push[p]){ ans++; p++; push[p]=k; num[p]=1; } else{ t=0; while(push[p]<=k){ t+=num[p]; p--; } if(p!=0){ t++; } p++; if(push[p]==k){ num[p]++; } else{ push[p]=k; num[p]=1; } ans+=t; } } cout<<ans; return 0; }