参考大佬的题解,却全WA了。。。
#include<bits/stdc++.h>
#define mod 1000007
using namespace std;
int n,m,ans;
int a[520],v[520][520];
int dfs(int x,int sum){
if(sum==m)return 1;
if(sum>m || x>n)return 0;
if(v[x][sum])return v[x][sum];
ans=0;
for(int i=0;i<=a[x];i++)
ans=(ans+dfs(x+1,sum+i))%mod;
return v[x][sum]=ans;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>a[i];
cout<<dfs(1,0)<<endl;
return 0;
}