Submission #970824

#TimeUsernameProblemLanguageResultExecution timeMemory
970824vladiliusThe short shank; Redemption (BOI21_prison)C++17
15 / 100
2041 ms524288 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, d, t; cin>>n>>d>>t; vector<int> a(n + 1); for (int i = 1; i <= n; i++){ cin>>a[i]; } vector<vector<int>> h(n + 1, vector<int>(n + 1)); for (int i = 1; i <= n; i++){ priority_queue<int, vector<int>, greater<int>> pq; int tt = 0, cnt = 0; for (int j = i; j <= n; j++){ pq.push(a[j] - tt); int m = pq.top() + tt; cnt += (m <= t); h[i][j] = cnt; tt++; } } vector<vector<int>> dp(n + 1, vector<int>(d + 1)); for (int i = 1; i <= n; i++){ dp[i][0] = h[1][i]; } for (int k = 1; k <= d; k++){ for (int i = 1; i <= n; i++){ dp[i][k] = dp[i][k - 1]; for (int j = 1; j < i; j++){ dp[i][k] = min(dp[i][k], dp[j][k - 1] + h[j + 1][i]); } } } cout<<dp[n][d]<<"\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...