제출 #887241

#제출 시각아이디문제언어결과실행 시간메모리
887241_minhducThe short shank; Redemption (BOI21_prison)C++14
15 / 100
24 ms2820 KiB
/** * author: _minhduc * created: 14-12-2023 13:30:37 **/ #include <bits/stdc++.h> #define int long long #define taskname "" using namespace std; const int maxN = (int)(1e5); int n,d,a; int arr[maxN+5]; namespace sub1 { const int N = (int)(500); int dp[N+5][N+5]; void main() { for (int i = 0; i < n; i++) cin >> arr[i]; for (int i = 0; i <= n; i++) for (int j = 0; j <= d+1; j++) dp[i][j] = (int)(1e16); dp[n][0] = 0; for (int i = n-1; i >= 0; i--) for (int j = 1; j <= d+1; j++) { int cnt = 0, mn = arr[i]; for (int k = i+1; k <= n; k++) { cnt += (mn <= a); dp[i][j] = min(dp[i][j],dp[k][j-1] + cnt); mn = min(mn+1,arr[k]); } } cout << dp[0][d+1]; } } int32_t main() { ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); #ifdef LOCAL freopen(".inp", "r", stdin); freopen(".out", "w", stdout); #endif #ifdef ONLINE_JUDGE // freopen(taskname".inp", "r", stdin); // freopen(taskname".out", "w", stdout); #endif cin >> n >> d >> a; if (n <= 500) sub1::main(); }
#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...