Submission #37918

#TimeUsernameProblemLanguageResultExecution timeMemory
37918TalantK blocks (IZhO14_blocks)C++14
53 / 100
1000 ms42252 KiB
#include <bits/stdc++.h> #define fr first #define sc second #define OK puts("OK"); #define pb push_back #define mk make_pair using namespace std; typedef long long ll; const int inf = (int)1e9 + 7; const int N = (int)1e5 + 7; int n,k; int a[N]; int dp[102][N]; int get (int l,int r) { int mx = 0; for (int i = l; i <= r; i ++) mx = max(mx,a[i]); return mx; } int main () { cin >> n >> k; for (int i = 1; i <= n; i ++) { cin >> a[i]; } memset(dp,0x3f3f3f3f,sizeof(dp)); dp[1][1] = a[1]; dp[0][0] = 0; for (int i = 1; i <= k; i ++) { for (int j = 1; j <= n; j ++) { for (int l = i - 1; l < j; l ++) { dp[i][j] = min(dp[i][j],dp[i - 1][l] + get(l + 1,j)); } } } cout << dp[k][n] << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...