Submission #94024

#TimeUsernameProblemLanguageResultExecution timeMemory
94024brcode오렌지 출하 (JOI16_ho_t1)C++14
0 / 100
1094 ms508 KiB
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
const long long MAXN = 100010;
long long arr[MAXN];
long long dp[MAXN];
long long n,m,k;
long long rec(long long x,long long y,long long z){
    if(x>=n){
        return 0;
    }
    if(dp[x]<1000000000){
        return dp[x];
    }
    long long maxo = arr[x];
    long long mino = arr[x];
    long long ans = 1000000000;
    for(long long i=x;i<min(n,x+y);i++){
        //long long incto = i+x;
        maxo = max(maxo,arr[i]);
        mino = min(mino,arr[i]);
        long long diff = maxo-mino;
        long long cost = z+(i-x+1)*diff;
        long long final = cost + rec(i+1,y,z);
        ans = min(final,ans);
    }
    return dp[x] = ans;
    
}
int main() {
    cin>>n>>m>>k;
    for(long long i=0;i<n;i++){
        cin>>arr[i];
        dp[i] = 1000000000;
    }
    cout<<rec(0,m,k)<<endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...