Submission #142198

#TimeUsernameProblemLanguageResultExecution timeMemory
142198meatrowK blocks (IZhO14_blocks)C++17
53 / 100
11 ms632 KiB
//#pragma GCC optimize("O3") //#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,tune=native") //#pragma GCC optimize ("unroll-loops") #include <bits/stdc++.h> using namespace std; using ll = long long; const int N = 101; int dp[N][N]; int c[N][N]; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int n, k; cin >> n >> k; vector<int> a(n + 1); for (int i = 1; i <= n; i++) { cin >> a[i]; } for (int i = 1; i <= n; i++) { c[i][i] = a[i]; for (int j = i + 1; j <= n; j++) { c[i][j] = max(c[i][j - 1], a[j]); } } for (int i = 0; i <= n; i++) { for (int j = 0; j <= k; j++) { dp[i][j] = INT32_MAX; } } dp[0][0] = 0; for (int i = 1; i <= n; i++) { for (int j = 1; j <= k; j++) { for (int t = 0; t < i; t++) { if (dp[t][j - 1] != INT32_MAX) { dp[i][j] = min(dp[i][j], dp[t][j - 1] + c[t + 1][i]); } } } } cout << dp[n][k]; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...