Submission #1273571

#TimeUsernameProblemLanguageResultExecution timeMemory
1273571KindaGoodGamesThe short shank; Redemption (BOI21_prison)C++20
10 / 100
40 ms8192 KiB
// #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 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...