제출 #988428

#제출 시각아이디문제언어결과실행 시간메모리
988428HUYHDUVERabbit Carrot (LMIO19_triusis)C++14
100 / 100
81 ms6996 KiB
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

int main(){
//    freopen("A.IN", "r", stdin);
//    freopen("A.OUT", "w", stdout);
    ll n, m; cin >> n >> m;
    vector<ll> a(n);

    for(auto &it : a) cin >> it;

    vector<ll> b(n);
    int cnt = 0;
    if(a[0] > m) {
        cnt ++;
        a[0] = m;
    }


    for(int i = 0; i < n; i++){
        b[i] = (i + 1)*m - a[i];
    }

    vector<ll> min_e(n, 0);


    int max_l = 0;
    function<int(ll)> bi_s = [&](ll targ) -> int{
        int l = 0, r = max_l, ans = 0;
        while(l <= r){
            int mid = l + (r - l)/2;
            if(min_e[mid] <= targ){
                ans = mid;
                l = mid + 1;
            }
            else r = mid - 1;
        }

        return ans;
    };

    for(int i = 0; i < n; i++){
        if(b[i] < 0) continue;
        int j = bi_s(b[i]);

        max_l = max(max_l, j + 1);
        min_e[j + 1] = b[i];
    }

//    for(auto &it : b) cout << it << " ";

    cout << n - max_l + cnt;

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