Submission #920885

#TimeUsernameProblemLanguageResultExecution timeMemory
920885ttamxRabbit Carrot (LMIO19_triusis)C++14
100 / 100
75 ms13648 KiB
#include<bits/stdc++.h>

using namespace std;

using ll = long long;

int n,m,lz;
map<ll,int> s;

int main(){
    cin.tie(nullptr)->sync_with_stdio(false);
    cin >> n >> m;
    s.emplace(0,0);
    for(int i=1;i<=n;i++){
        ll a;
        cin >> a;
        a-=1LL*m*i;
        lz++;
        auto it=s.lower_bound(a);
        if(it==s.end())continue;
        int val=it->second+lz-1;
        s[a]=val-lz;
        it=s.find(a);
        while(it!=s.begin()&&(--it)->second+lz>=val)it=s.erase(it);
    }
    cout << s.begin()->second+lz;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...