Submission #1198987

#TimeUsernameProblemLanguageResultExecution timeMemory
1198987brover29Magneti (COCI21_magneti)C++17
0 / 110
1096 ms4672 KiB
#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,p[N];
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];
        p[i]=i;

    }dp[0][0]=1;
    ll ans=0;
    do{
        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[p[j]],r[p[j-1]]);
                dp[i][j]=dp[i-1][j];
                dp[i][j]+=dp[max(0ll,i-k)][j-1];
                dp[i][j]%=mod;

            }
        }ans+=dp[l][n];
        ans%=mod;
    }while(next_permutation(p+1,p+1+n));
    cout<<ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...