Submission #1298881

#TimeUsernameProblemLanguageResultExecution timeMemory
1298881muhammad-ahmadRabbit Carrot (LMIO19_triusis)C++20
100 / 100
111 ms11340 KiB
// #include <bits/stdc++.h>
#include <iostream>
#include <cmath>
#include <algorithm>
#include <map>
#include <vector>
#include <iomanip>
#include <string>
#include <queue>
#include <set>
#include <deque>
#include <numeric>
#include <cassert>
#include <chrono>
using namespace std;
// void fast_io(){
	// // freopen("", "r", stdin);
	// // freopen("", "w", stdout);
	// ios::sync_with_stdio(0);
	// cin.tie(); cout.tie();
	// cout << setprecision(9);
// }

#define int long long
// #define endl '\n'
#define all(v) (v).begin(), (v).end()
#define rall(v) (v).rbegin(), (v).rend()
#define fi first
#define se second

void solve() {
	int n, m; cin >> n >> m;
	multiset<int> lis;
	
	int a[n + 1];
	for (int i = 1; i <= n; i++) cin >> a[i];
	
	for (int i = 1; i <= n; i++){
		if (a[i] <= i * m){
			int dif = i * m - a[i];
			if (lis.upper_bound(dif) == lis.end()) lis.insert(dif);
			else {
				lis.erase(lis.upper_bound(dif));
				lis.insert(dif);
			}
		}
	}
	
	cout << n - lis.size() << endl;
	
	return;
}

signed main() {
    // fast_io();
    srand(chrono::steady_clock::now().time_since_epoch().count());
    int tc = 1;
    // cin >> tc;
    while (tc--) 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...