又到了苹果成熟的季节。何老板的果园有n棵苹果树排成一排,其中第i棵树上有A[i]公斤苹果。
何老板有一辆卡车,最多能够运载m公斤水果。
何老板贪图方便,打算选连续一段果树采摘,如果选的这一段果树的苹果数量恰好为m公斤,刚好能把卡车装满,那就再好不过了。
何老板想知道,这n棵树中,有多少段果树的苹果重量之和,恰好为m公斤,请你帮他计算一下。
#include<bits/stdc++.h>
using namespace std;
int n,m,ans;
int a[100000],sum[100000];
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
sum[i]=a[i]+sum[i-1];
if(sum[i]==m){
ans++;
continue;
}
if(sum[i]>m){
for(int j=1;j<=i;j++){
sum[j]=sum[j-1]+a[j];
if(sum[i]-sum[j]==m){
ans++;
}
}
}
}
cout<<ans;
return 0;
}