Submission #663148

#TimeUsernameProblemLanguageResultExecution timeMemory
663148finn__Rabbit Carrot (LMIO19_triusis)C++17
100 / 100
88 ms8380 KiB
#include <bits/stdc++.h>
using namespace std;

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

    vector<uint64_t> a(n + 2);
    for (size_t i = 1; i <= n; i++)
        cin >> a[i];
    a[0] = a[n + 1] = 0;

    vector<uint64_t> b;
    for (size_t i = 0; i < n + 2; i++)
    {
        if (a[i] <= m * i)
            b.push_back(m * i - a[i]);
    }

    vector<uint64_t> dp;

    for (uint64_t const &x : b)
    {
        auto it = upper_bound(dp.begin(), dp.end(), x);
        if (it == dp.end())
            dp.push_back(x);
        else
            *it = x;
    }

    cout << n + 2 - dp.size() << '\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...