Submission #1216559

#TimeUsernameProblemLanguageResultExecution timeMemory
1216559howsoxorRabbit Carrot (LMIO19_triusis)C++20
100 / 100
17 ms3012 KiB
#include <bits/stdc++.h>
using namespace std;

int lis(const vector<int>& a, int x) {
    vector<int> ret;
    ret.push_back(x);
    for (int i = 0; i < a.size(); i++) {
        int it = a[i];
        auto pos = lower_bound(ret.begin(), ret.end(), it + 1);
        if (pos == ret.end()) {
            ret.push_back(it);
        } else {
            ret[pos - ret.begin()] = it;
        }
    }
    return (int)ret.size();
}

int32_t main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int n, m;
    cin >> n >> m;
    vector<int> f;
    f.reserve(n);
    for (int i = 1; i <= n; i++) {
        int x;
        cin >> x;
        f.push_back(i * m - x);
    }
    vector<int> g;
    g.reserve(n);
    for (int v : f) {
        if (v >= 0) g.push_back(v);
    }
    cout << n + 1 - lis(g, 0) << "\n";
    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...