Submission #253185

#TimeUsernameProblemLanguageResultExecution timeMemory
253185vioalbertRabbit Carrot (LMIO19_triusis)C++14
100 / 100
36 ms4088 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

const ll N = 2e5+5, MAX = 1e9+5, INF = 1e18;
ll n, m;
ll a[N];

void read() {
	cin >> n >> m;
	for(int i = 1; i <= n; i++)
		cin >> a[i];
}

vector<ll> dp;

void solve() {
	for(int i = 1; i <= n; i++) {
		a[i] = i*m - a[i];
		if(a[i] < 0) continue;
		int it = upper_bound(dp.begin(), dp.end(), a[i]) - dp.begin();
		if(it == dp.size()) dp.push_back(a[i]);
		else dp[it] = a[i];
	}
	cout << n - dp.size() << '\n';
}

int main() {
	ios::sync_with_stdio(0); cin.tie(0);
	read();
	solve();
	return 0;
}

Compilation message (stderr)

triusis.cpp: In function 'void solve()':
triusis.cpp:22:9: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if(it == dp.size()) dp.push_back(a[i]);
      ~~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...