# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1168826 | Warinchai | Skyscraper (JOI16_skyscraper) | C++20 | 1 ms | 1604 KiB |
#include<bits/stdc++.h>
#define int long long
using namespace std;
vector<int>h;
int dp[105][105][1005][3];
int md=1e9+7;
int32_t main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
int n,l;cin>>n>>l;
for(int i=1;i<=n;i++){
int a;cin>>a;
h.push_back(a);
}
h.push_back(0);
sort(h.begin(),h.end());
dp[0][0][0][0]=1;
dp[1][1][0][0]=1;
dp[1][1][0][1]=2;
for(int i=1;i<n;i++){
for(int j=1;j<=n;j++){
for(int k=0;k<=l;k++){
for(int m=0;m<3;m++){
int cost=k+(h[i+1]-h[i])*(2*j-m);
if(cost>l)continue;
//add middle component
dp[i+1][j+1][cost][m]+=dp[i][j][k][m]*(j-m+1);
dp[i+1][j+1][cost][m]%=md;
//add end component
dp[i+1][j+1][cost][m+1]+=dp[i][j][k][m]*(2-m);
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |