Submission #1315178

#TimeUsernameProblemLanguageResultExecution timeMemory
1315178thanhbinh13Rabbit Carrot (LMIO19_triusis)C++20
100 / 100
28 ms3552 KiB
#include<bits/stdc++.h>
using namespace std;

long long n,m,h[200002],f[200002];

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin >> n >> m;
    for (int i = 1; i <= n; i++) {
        cin >> h[i];
        h[i] -= i*m;
    }
    for (int i = 1; i <= n; i++) {
        f[i] = 1e18;
    }
    long long ans = 0;
    for (int i = n; i >= 0; i--) {
        ans = 1;
        long long l = 1,r = n;
        while(l <= r) {
            long long mid = (l+r)/2;
            if (f[mid] > h[i]) r = mid-1;
            else {
                l = mid+1;
                ans = mid+1;
            }
        }
        f[ans] = min(f[ans],h[i]);
    }
    cout  << n-ans+1;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...