// #pragma GCC optimize("O3, unroll-loops, Ofast")
#include<bits/stdc++.h>
using namespace std;
vector<int> arr;
const int MAXN = 4000;
const int MAXD = 4;
int n,d,t;
int INF = numeric_limits<int>::max()/2;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
cin >> n >> d >> t;
arr.resize(n);
vector<int> pref(n);
for(int i = 0; i < n; i++){
cin >> arr[i];
}
for(int i = 0; i < 1; i++){
int time = INF;
int cnt = 0;
for(int j = i; j < n; j++){
time = min(time+1, arr[j]);
if(time <= t){
cnt++;
}
pref[j] = cnt;
}
}
stack<int> bad;
vector<int> suff(n);
int cnt = 0;
for(int i = n-1; i >= 0; i--){
if(arr[i] > t){
bad.push(i);
}else{
cnt++;
while(bad.size() && arr[i]+(bad.top()-i) <= t){
bad.pop();
cnt++;
}
}
suff[i] = cnt;
}
int mi = INF;
for(int i = 0; i< n-1; i++){
mi = min(mi, pref[i] + suff[i+1]);
}
cout << mi << endl;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |