#include #include using namespace std; int N,P[2<<17]; long S[2<<17]; int inv[2<<17]; main() { cin>>N; for(int i=0;i>P[i]; inv[P[i]-1]=i; S[i+1]=S[i]+P[i]; } setst({-1,N}); for(int i=0;i>A; int k=inv[i]; auto it=st.lower_bound(k); int R=*it,L=*--it; st.insert(k); long ans=0; if(k-L1) { int mid=(l+r)/2; if(S[mid]-S[x]<=A)l=mid; else r=mid; } ans+=l-k; } } else { for(int y=k;y1) { int mid=(l+r)/2; if(S[y+1]-S[mid+1]<=A)r=mid; else l=mid; } ans+=k-r; } } cout<