思路:顶级二分+前缀和 不多解释,太帅了!,看代码好吧(一发ac太爽了,逃~)
Accode:
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N=1e5+10;
int n,k,a[N],pre[N],ans;
void solve() {cin>>n>>k;for(int i=1; i<=n; i++) {cin>>a[i];pre[i]=pre[i-1]+a[i];}for(int i=1;i<=n;i++){int j=lower_bound(pre+1,pre+1+n,k+pre[i-1])-pre;ans+=n-j+1;} cout<<ans<<"\n";
}
signed main() {ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);int tt=1;//cin>>tt;while(tt--) {solve();}return 0;
}
over~