제출 #931463

#제출 시각아이디문제언어결과실행 시간메모리
9314630x34cRabbit Carrot (LMIO19_triusis)C++17
100 / 100
24 ms6864 KiB
#include <bits/stdc++.h>
#define ll long long
#define pii pair<int, int>
#define endl '\n'
#define int ll

using namespace std;

void dbg(vector<int> &arr)
{
    cout << "[";
    for (int &i : arr)
        cout << ' ' << i;
    cout << " ]" << endl;
}

signed main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    int N, M;
    cin >> N >> M;

    vector<int> arr;
    for (int i = 1; i <= N; i++)
    {
        int x;
        cin >> x;

        arr.push_back(x - (M * i));
        if (arr.back() > 0)
            arr.pop_back();
    }

    int sz = arr.size();
    vector<int> lis;
    for (int i = 0; i < sz; i++)
    {
        if (lis.empty() || lis.back() >= arr[i])
        {
            lis.push_back(arr[i]);
            // dbg(lis);
            continue;
        }

        int l = 0, r = lis.size() - 1;
        int lb = 0;

        while (l <= r)
        {
            int m = l + (r - l) / 2;
            if (lis[m] < arr[i])
            {
                lb = m;
                r = m - 1;
            }
            else
                l = m + 1;
        }

        lis[lb] = arr[i];

        // dbg(lis);
    }

    cout << N - lis.size() << endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...