#include<iostream>
using namespace std;
#define int long long
int a[301];
int dp[301][301][301];
signed main(){
ios_base::sync_with_stdio(false);cin.tie(NULL);
int n,i,j,k,aux;
cin>>n;
for(i=1;i<=n;i++) cin>>a[i];
for(i=0;i<=n;i++){
for(j=0;j<=300;j++){
for(k=0;k<=300;k++) dp[i][j][k]=1e18;
}
}
dp[0][0][0]=0;
for(i=1;i<=n;i++){
for(j=a[i-1];j>=0;j--){
for(k=a[i];k>=0;k--){
aux=a[i]-k;
dp[i][j][k]=min(min(dp[i][j][k+1]+3,dp[i][j+1][k+1]+5),min(dp[i-1][aux][j+aux]+7*aux,min(dp[i-1][0][j+aux]+5*aux,dp[i-1][0][j]+3*aux)));
}
}
}
cout<<dp[n][0][0];
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |