Submission #1218922

#TimeUsernameProblemLanguageResultExecution timeMemory
1218922recappRabbit Carrot (LMIO19_triusis)C++17
0 / 100
1 ms328 KiB
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

typedef long long ll;

struct SegTree {
    int n;
    vector<int> st;
    
    SegTree(int _n) : n(_n), st(2 * _n, 0) {}
    
    void update(int p, int v) {
        p += n;
        st[p] = max(st[p], v);
        for (p >>= 1; p; p >>= 1) {
            st[p] = max(st[p << 1], st[p << 1 | 1]);
        }
    }

    int query(int l, int r) {
        int res = 0;
        for (l += n, r += n; l < r; l >>= 1, r >>= 1) {
            if (l & 1) res = max(res, st[l++]);
            if (r & 1) res = max(res, st[--r]);
        }
        return res;
    }
};

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

    int n;
    ll m;
    cin >> n >> m;
    vector<ll> arr(n), vals;
    vals.reserve(n);
    for (int i = 0; i < n; i++) {
        cin >> arr[i];
        vals.push_back(arr[i]);
    }

    sort(vals.begin(), vals.end());
    vals.erase(unique(vals.begin(), vals.end()), vals.end());
    int len = vals.size();

    SegTree st(len);
    int best = 0;

    for (int i = 0; i < n; i++) {
        ll h = arr[i];

        int dpi = 0;
        if (h <= m) dpi = 1;

        ll need = h - m;
        auto it = lower_bound(vals.begin(), vals.end(), need);
        if (it != vals.end()) {
            int l = int(it - vals.begin());
            int q = st.query(l, len);
            if (q > 0) dpi = max(dpi, q + 1);
        }

        if (dpi > 0) {
            int idx = int(lower_bound(vals.begin(), vals.end(), h) - vals.begin());
            st.update(idx, dpi);
            best = max(best, dpi);
        }
    }

    cout << (n - best) << endl;

    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...