1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
#include <cstring> #include <algorithm> #include <cstdlib> using namespace std; int st[80005][2],top=0,n,h[80005]; long long ans=0; int (){ scanf("%d",&n); int i,j; for(i=0;i<n;i++) scanf("%d",&h[i]); st[top][0]=h[n-1],st[top++][1]=n-1; for(i=n-2;i>=0;i--){ while(top&&h[i]>st[top-1][0]) top--; if(!top) ans+=(n-1-i); else ans+=(st[top-1][1]-i-1); st[top][0]=h[i],st[top++][1]=i; } printf("%lldn",ans); return 0; }
|
近期评论