Submission #619178

#TimeUsernameProblemLanguageResultExecution timeMemory
619178HanksburgerRabbit Carrot (LMIO19_triusis)C++17
100 / 100
157 ms13864 KiB
#include <bits/stdc++.h> using namespace std; set<pair<long long, long long> > s; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); long long n, m, ans=1e18; cin >> n >> m; s.insert({0, 0}); s.insert({1e18, 1e18}); for (long long i=1; i<=n; i++) { long long x, y; cin >> x; y=(*s.lower_bound({x-m*i, -1e18})).second; auto itr=s.lower_bound({x-m*i, -1e18}); if (y-1<(*itr).second) { long long fi=(*itr).first, se=(*itr).second; auto itr2=itr; while (y-1<(*itr2).second) { itr2=s.erase(itr2); if (itr2==s.begin()) break; itr2--; } if (x-m*i==fi) s.insert({fi, y-1}); else { s.insert({fi, se}); s.insert({x-m*i, y-1}); } } } for (auto itr=s.begin(); itr!=s.end(); itr++) ans=min(ans, itr->second+n); cout << ans; 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...