제출 #1031516

#제출 시각아이디문제언어결과실행 시간메모리
1031516vjudge1Skyscraper (JOI16_skyscraper)C++17
5 / 100
238 ms524288 KiB
#include<bits/stdc++.h> using namespace std; //int dp0[101][51],dp1[105][51],dp2[101][51]; long long cnt[1<<14][14][1001]; int vl[14],mod=1e9+7; int main(){ int n,l; cin>>n>>l; for(int i=0;i<n;i++) cin>>vl[i],cnt[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 k=0;k<=l;k++) cnt[i][j][k]%=mod; for(int k=0;k<n;k++)if(~i&1<<k){ int cst=abs(vl[j]-vl[k]); for(int v=0;v<=l-cst;v++) cnt[i^1<<k][k][v+cst]+=cnt[i][j][v]; } } long long ans=0; for(int i=0;i<=l;i++) for(int x=0;x<n;x++) ans+=cnt[(1<<n)-1][x][i]; cout<<ans%mod; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...