Submission #668856

#TimeUsernameProblemLanguageResultExecution timeMemory
668856mychecksedadThe short shank; Redemption (BOI21_prison)C++17
0 / 100
1 ms340 KiB
/* Author : Mychecksdead */
#include<bits/stdc++.h>
using namespace std;
typedef long long int ll;
typedef long double ld;
#define pb push_back
#define all(x) x.begin(), x.end()
const int N = 2e6+10, M = 5e3, MOD = 1e9+7;

int n, d, a[N], T, dp[M][M], pref[N], suf[N];
void solve(){
	cin >> n >> d >> T;
	for(int i = 1; i <= n; ++i) cin >> a[i];
	pref[0] = 0, suf[n + 1] = 0;
	int cur = MOD;
	for(int i = 1; i <= n; ++i){
		pref[i] = pref[i - 1];
		if(min(a[i], cur) < T) pref[i]++;
		cur = min(a[i] + 1, cur + 1);
	}
	cur = MOD;
	for(int i = n; i >= 1; --i){
		suf[i] = suf[i + 1];
		if(min(a[i], cur) < T) suf[i]++;
		cur = min(a[i] + 1, cur + 1);
	}
	int ans = n;
	for(int i = 0; i <= n; ++i){
		ans = min(ans, pref[i] + suf[i + 1]);
	}
	cout << ans;
}




int main(){
    cin.tie(0); ios::sync_with_stdio(0);
    solve();
    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...