#include <bits/stdc++.h>
//qwerty47924692
using namespace std;
using ll = long long;
const ll N=10005;
const ll mod=1e9+7;
const string br="617283";
#define sz(a)(ll)a.size()
#define f first
#define s second
ll dp[N][55],sum[N][55],r[N],n,l;
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cin>>n>>l;
ll f=1;
for(ll i=1;i<=n;i++){
cin>>r[i];
f*=i;
f%=mod;
}dp[0][0]=1;
for(ll i=1;i<=l;i++){
dp[i][0]=dp[i-1][0];
for(ll j=1;j<=n;j++){
ll k=max(r[j],r[j-1]);
dp[i][j]=dp[i-1][j];
dp[i][j]+=dp[max(0ll,i-k)][j-1];
dp[i][j]%=mod;
}
}
cout<<dp[l][n]*f%mod;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |