提交时间:2022-08-18 10:57:34

运行 ID: 55406

#include<bits/stdc++.h> #define int unsigned long long #define mod 1000000007 using namespace std; inline int read(){ int x=0,f=0;char c=getchar(); while(!isdigit(c))f|=(!(c^'-')),c=getchar(); while(isdigit(c))x=(x<<1)+(x<<3)+(c^48),c=getchar(); return f?-x:x; } int n,m,k,ans,a[505],f[2][455][75]; signed main(){ f[0][0][1]=1; n=read(),m=read(),k=read(); for(int i=1;i<=n;i++)a[i]=read(); for(int i=0;i<m;i++){ memset(f[(i+1)&1],0,sizeof f[(i+1)&1]); for(int j=0;j<=k;j++) for(int kk=1;kk<=n;kk++) for(int l=kk;l<=n;l++) if(j+a[l]<=k)(f[(i+1)&1][j+a[l]][l]+=f[i&1][j][kk])%=mod; } for(int i=0;i<=k;i++)for(int j=1;j<=n;j++)(ans+=f[m&1][i][j])%=mod; cout<<ans<<endl; return 0; }