Submission #973592

#TimeUsernameProblemLanguageResultExecution timeMemory
973592AiperiiiSkyscraper (JOI16_skyscraper)C++14
0 / 100
469 ms203848 KiB
#include <bits/stdc++.h> #define int long long #define ff first #define ss second #define pb push_back #define all(x) x.begin(),x.end() using namespace std; const int mod=1e9+7; int dp[(1<<15)][15][105]; signed main(){ ios_base::sync_with_stdio(); cin.tie(0);cout.tie(0); int n,L; cin>>n>>L; vector <int> a(n); for(int i=0;i<n;i++){ cin>>a[i]; dp[(1<<i)][i][0]=1; } for(int i=1;i<(1<<n);i++){ for(int j=0;j<n;j++){ if((i&(1<<j))){ for(int l=0;l<n;l++){ for(int s=0;s<=L;s++){ if(dp[i^(1<<j)][l][s]){ dp[i][j][s+abs(a[l]-a[j])]+=dp[i^(1<<j)][l][s]; dp[i][j][s+abs(a[l]-a[j])]%=mod; } } } } } } int ans=0; for(int l=0;l<n;l++){ for(int s=0;s<=L;s++){ ans+=dp[(1<<n)-1][l][s]; ans%=mod; } } cout<<ans<<"\n"; } /* 4 10 3 6 2 9 8 35 3 7 1 5 10 2 11 6 */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...