Submission #1168807

#TimeUsernameProblemLanguageResultExecution timeMemory
1168807askewwRabbit Carrot (LMIO19_triusis)C++20
100 / 100
50 ms2240 KiB
#include <bits/stdc++.h>
using namespace std;

template<typename T>
using V = vector<T>;

int n, m;

V<int> a, lis;

int main() {
    cin >> n >> m;

    a = V<int>(n + 1);
    for (int i = 1; i <= n; i++) {
        cin >> a[i];

        a[i] -= i * m;
    }

    lis = {0};
    for (int i = 1; i <= n; i++) {
        // cout << a[i] << ' ';
        if (a[i] > 0) continue;
        auto lb = upper_bound(lis.begin(), lis.end(), a[i], greater<int>());

        if (lb == lis.end()) {
            lis.push_back(a[i]);
        } else {
            lis[lb - lis.begin()] = a[i];
        }
    }
    cout << (n - (lis.size() - 1)) << endl;

    // for (auto& it : lis) {
    //     cout << it << " ";
    // }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...