#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;
int main(){
ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
cin >> n >> d >> t;
a.assign(n+1,0);
for (int i = 1; i <= n; i++) cin >> a[i];
int minT = INT_MAX;
vec<int> pref(n + 10,0),suff(n + 10,0);
for (int i = 1; i <= n; i++){
pref[i] += pref[i-1];
chmin(minT,a[i] - i);
if (minT <= t - i) pref[i]++;
}
minT = INT_MAX;
stack<int> stk;
for (int i = n; i >= 1; i--){
suff[i] += suff[i+1];
minT = a[i] - i;
stk.push(t - i);
while (!stk.empty() && minT <= stk.top()){
suff[i]++;
stk.pop();
}
}
int ans = INT_MAX;
for (int i = 1; i < n; i++){
chmin(ans,pref[i] + suff[i+1]);
}
cout << ans << endl;
return 0;
}
| # | 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... |