苹果采摘 看一下有什么问题总是超时

又到了苹果成熟的季节。何老板的果园有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;
}