Submission #1215238

#TimeUsernameProblemLanguageResultExecution timeMemory
1215238nataliaaGlobal Warming (CEOI18_glo)C++20
100 / 100
71 ms3400 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
void test_case() {
	int n;
	int x;
	cin >> n >> x;
	int a[n];
	for (int i = 0; i < n; i++) cin >> a[i]; 
	vector<int> v(n, 1e9+5);
	int ans = 0;
	int a1[n]={};
	for (int i = 0; i < n; i++) {
		int l = lower_bound(v.begin(), v.end(), a[i]) - v.begin();
	    v[l] = a[i];
		a1[i] = l + 1;
		ans = max(ans, a1[i]);
	}
	vector<int> v1(n, 1e9+5);
	for (int i = n - 1; i >= 0; i--) {
		int l = lower_bound(v1.begin(), v1.end(), -a[i] + x) - v1.begin();
		ans = max(ans, a1[i] + l);
		int r = lower_bound(v1.begin(), v1.end(), -a[i]) - v1.begin();
		v1[r] = -a[i];
	}
	cout << ans;
}
int main() {
	int t;
	t=1;
	while (t--) test_case();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...