제출 #750625

#제출 시각아이디문제언어결과실행 시간메모리
750625dmotRabbit Carrot (LMIO19_triusis)C++17
100 / 100
30 ms6896 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pi = pair<int, int>;

int main() {
    cin.tie(0)->sync_with_stdio(0);
    cin.exceptions(cin.failbit);
    
    int n; cin >> n;
    ll m; cin >> m;
    vector<ll> a(n+1);
    for (int i = 1; i <= n; ++i) cin >> a[i];
    vector<ll> dp(n+1, 1e10);
    vector<ll> b(n+1);
    for (int i = 1; i <= n; ++i) {
        b[i] = (i * m) - a[i];
    }
    // for (auto x : b) cerr << x << " ";
    // cerr << endl;
    dp[0] = 0;
    for (int i = 1; i <= n; ++i) {
        int lo = 1, hi = i;
        if (b[i] < 0) continue;
        while (lo < hi) {
            int mid = (lo + hi) / 2;
            if (dp[mid] <= b[i]) lo = mid+1;
            else hi = mid;
        }
        dp[lo] = b[i];
        // for (auto x : dp) cerr << x << " ";
        // cerr << endl;
    }

    int i = 1;
    while ((i <= n) && dp[i] < 1e10) i++;

    cout << n - (i - 1) << 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...