Submission #1301764

#TimeUsernameProblemLanguageResultExecution timeMemory
1301764efegThe short shank; Redemption (BOI21_prison)C++20
10 / 100
41 ms8284 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; 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 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...