Submission #1140838

#TimeUsernameProblemLanguageResultExecution timeMemory
1140838ndanRabbit Carrot (LMIO19_triusis)C++20
0 / 100
1 ms1860 KiB
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
#define forr(i, a, b) for (int i = (a), _b = (b); i <= _b; ++i)
#define ford(i, b, a) for (int i = (b), _a = (a); i >= _a; --i)
#define forf(i, a, b) for (int i = (a), _b = (b); i < _b; ++i)
#define file "test"
const int maxn = 2e5 + 5;

ll n, m, a[maxn], idx = 1, b[maxn], c[maxn], unchanged = 0;

int main() {
    ios_base::sync_with_stdio(0); cin.tie(0);
    // freopen(file".inp", "r", stdin);
    // freopen(file".out", "w", stdout);
    cin >> n >> m;
    forr(i, 1, n)
        cin >> a[i];    
    forr(i, 2, n)
        if (m * i >= a[i - 1])
            b[idx++] = m * i - a[i];
    memset(c, 126, sizeof c);
    forf(i, 1, idx) {
        ll pos = upper_bound(c + 1, c + unchanged + 1, b[i]) - c;
        if (pos <= idx) {
            unchanged = max(pos, unchanged);
            c[pos] = b[i];
        }
    }
    cout << n - unchanged;
    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...