Submission #1198913

#TimeUsernameProblemLanguageResultExecution timeMemory
1198913iamhereforfunRabbit Carrot (LMIO19_triusis)C++20
100 / 100
88 ms9800 KiB
// IamHereForFun //

#include <bits/stdc++.h>

using namespace std;

#define LSOne(S) ((S) & -(S))
#define int long long

const int N = 1e5 + 5;
const int M = 45e5 + 5;
const int K = 4;
const int LG = 20;
const long long INF = -1e18;
const int MOD = 1e9 + 7;
const int B = 50;

int n, m, os = 0, ans = 0;
multiset<int> s;

void solve()
{
    cin >> n >> m;
    s.insert(0);
    for(int x = 0; x < n; x++)
    {
        int i; cin >> i;
        auto it = s.lower_bound(i - os - m);
        // cout << *s.begin() << " ";
        if(*s.begin() >= i - os - m)
        {
            s.insert(i - os - m);
        }
        else
        {
            ans++;
        }
        if(it != s.begin() && it != s.end())
        {
            it--;
            s.erase(it);
            s.insert(i - os - m);
        }
        os += m;
        // for(int i : s) cout << i << " ";
        // cout << "\n";
        // cout << ans << "\n";
    }
    cout << ans;
}

signed main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int t = 1;
    // cin >> t;
    for (int x = 1; x <= t; x++)
    {
        solve();
    }
    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...