제출 #422039

#제출 시각아이디문제언어결과실행 시간메모리
422039rqiRabbit Carrot (LMIO19_triusis)C++14
100 / 100
115 ms5848 KiB
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef vector<ll> vl;

#define pb push_back
#define bk back()
#define sz(x) (int)(x).size()

const int mx = 200005;
int N, M;
ll a[mx];
int main(){
	cin >> N >> M;
	for(int i = 1; i <= N; i++){
		cin >> a[i];
	}
	for(int i = 1; i <= N; i++){
		a[i]-=ll(i)*ll(M);
	}
	vl dp = vl{0};
	for(int i = 1; i <= N; i++){
		if(a[i] > 0) continue;
		if(a[i] <= dp.bk){
			dp.pb(a[i]);
			continue;
		}
		int lo = 0;
		int hi = sz(dp)-1;
		while(lo < hi){
			int mid = (lo+hi)/2+1;
			if(dp[mid] >= a[i]){
				lo = mid;
			}
			else{
				hi = mid-1;
			}
		}

		dp[lo+1] = a[i];
	}

	int ans = N-(sz(dp)-1);
	cout << ans << "\n";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...