Submission #1175066

#TimeUsernameProblemLanguageResultExecution timeMemory
1175066hiepsimauhongStove (JOI18_stove)C++20
50 / 100
23 ms47432 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; const int64_t oo = 1e9; //#define int long long #define quickly ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define print(a,l,r) for(int OK(l); OK <= r ; ++OK){ if(a[OK] < oo){cout << a[OK] <<' ';} else{cout << "- ";}} cout << '\n'; #define prints(a) for(auto i : a){ cout << i <<' ';} cout << '\n'; #define printz(a,l,r) for(int OK(1) ; OK <= l ; ++OK){for(int KO(1) ; KO <= r ; ++KO){if(a[OK][KO] < oo){cout << a[OK][KO] <<' ';}else{cout << "- ";}}cout << '\n';} cout << '\n'; #define fs first #define sd second #define th second.second #define ii pair<int,int> #define iii pair<int, ii> #define all(a) a.begin(), a.end() const int N = 5000 + 5; const int mod = 1e9 + 7; int n, k; int DP[N][N], a[N], pre[N]; signed main(){ quickly cin >> n >> k; for(int i(1) ; i <= n ; ++i){ cin >> a[i]; DP[0][i] = oo; } for(int i(1) ; i <= k ; ++i){ int otp = 0; for(int r(1) ; r <= n ; ++r){ otp = min(otp, DP[i - 1][r - 1] - a[r]); DP[i][r] = a[r] + otp + 1; } } cout << DP[k][n]; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...