#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define debug(x) cerr<<x<<endl;
#define read(x) x=read_int()
#define writen(x) write_int(x,1)
#define writes(x) write_int(x,2)
inline int read_int(){int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9') {if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9') x=(x<<1)+(x<<3)+(ch^48),ch=getchar();return x*f;}
void write_int(int x,short e){if(x<0){putchar('-');x=-x;}if(x>9){write_int(x/10,0);}putchar(x%10+'0');if(e==1){putchar('\n');}if(e==2){putchar(' ');}}
inline ll read_ll(){ll x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9') {if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9') x=(x<<1)+(x<<3)+(ch^48),ch=getchar();return x*f;}
void write_ll(ll x,short e){if(x<0){putchar('-');x=-x;}if(x>9){write_ll(x/10,0);}putchar(x%10+'0');if(e==1){putchar('\n');}if(e==2){putchar(' ');}}
const int N=1e5+10;
int n,k,a[N],sum[N],ans=0;
int find(int now){
int l=now,r=n,out=n+1;
while(l<=r){
int mid=l+(r-l)/2;
if(sum[mid]-sum[now-1]>=k){
out=mid;
r=mid-1;
}else{
l=mid+1;
}
}
return out;
}
int main(){
read(n);
read(k);
for(int i=1;i<=n;i++){
read(a[i]);
sum[i]=sum[i-1]+a[i];
}
for(int i=1;i<=n;i++){
if(sum[n]-sum[i-1]<k)continue;
int big=find(i);
if(big<=n)ans+=n-big+1;
}
writen(ans);
return 0;
}
样例全过,#16点WA [qwq]