Submission #831059

#TimeUsernameProblemLanguageResultExecution timeMemory
831059serifefedartarRabbit Carrot (LMIO19_triusis)C++17
100 / 100
21 ms5324 KiB
#include <bits/stdc++.h>
using namespace std;
 
#define fast ios::sync_with_stdio(0);cin.tie(0);
typedef long long ll;
#define f first
#define s second
#define MOD 1000000007
#define LOGN 18
#define MAXN 5005

vector<int> a, cand;
int find() {
	vector<int> LIS;
	for (auto u : cand) {
		int pos = upper_bound(LIS.begin(), LIS.end(), u) - LIS.begin();
		if (pos == LIS.size())
			LIS.push_back(u);
		LIS[pos] = u;			
	}
	return LIS.size();
}

int main() {
	fast
	int N, M;
	cin >> N >> M;

	a = vector<int>(N+1);
	for (int i = 1; i <= N; i++)
		cin >> a[i];

	for (int i = 1; i <= N; i++) {
		if (a[i] <= M * i)
			cand.push_back(M * i - a[i]);
	}

	int LNDS = find();
	cout << N - LNDS << "\n";
}

Compilation message (stderr)

triusis.cpp: In function 'int find()':
triusis.cpp:17:11: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   17 |   if (pos == LIS.size())
      |       ~~~~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...