Submission #1301702

#TimeUsernameProblemLanguageResultExecution timeMemory
1301702efegThe short shank; Redemption (BOI21_prison)C++20
15 / 100
2096 ms45440 KiB
#include <bits/stdc++.h> using namespace std; using i64 = long long; template<typename T> using vec = vector<T>; template<typename T> void chmin(T &a,T b){ a = min(a,b); } int n,d,t; vec<int> a; vec<vec<int>> dp; int main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); cin >> n >> d >> t; a.assign(n+1,0); dp.assign(n + 10,vec<int>(d + 10,INT_MAX)); for (int i = 1; i <= n; i++) cin >> a[i]; int minT = INT_MAX; dp[0][1] = 0; for (int i = 1; i <= n; i++){ dp[i][1] = dp[i-1][1]; chmin(minT,a[i] - i); if (minT <= t - i){ dp[i][1]++; } } for (int j = 2; j <= d + 1; j++){ for (int i = j; i <= n; i++){ int res = dp[i-1][j-1]; minT = INT_MAX; for (int x = i; x <= n; x++){ chmin(minT,a[x] - x); if (minT <= t - x){ res++; } chmin(dp[x][j],res); } } } int ans = INT_MAX; for (int j = 1; j <= d+1; j++){ chmin(ans,dp[n][j]); } cout << ans << endl; 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...