제출 #1145086

#제출 시각아이디문제언어결과실행 시간메모리
1145086am_aadvikGlobal Warming (CEOI18_glo)C++20
100 / 100
76 ms2936 KiB
#include <iostream>
#include<vector>
#include<algorithm>
const int inf = 2e9 + 5;
using namespace std;

int main() {
	int n, x, ans = 1; cin >> n >> x;
	vector<int> a(n);
	for (auto& v : a) cin >> v;

	vector<int> arr(n, inf), res(n);
	for (int i = 0; i < n; ++i) {
		auto pos = lower_bound(arr.begin(), arr.end(), a[i]) - arr.begin();
		arr[pos] = a[i], res[i] = pos + 1;
	}

	arr.assign(n, inf);
	for (int i = n - 1; i >= 0; --i)
		ans = max(ans, res[i] + (int)(lower_bound(arr.begin(), arr.end(), -a[i] + x) - arr.begin())),
		arr[lower_bound(arr.begin(), arr.end(), -a[i]) - arr.begin()] = -a[i];

	cout << ans;
}
#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...