Submission #1214955

#TimeUsernameProblemLanguageResultExecution timeMemory
1214955nataliaaGlobal Warming (CEOI18_glo)C++20
38 / 100
2095 ms1728 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
void test_case() {
	int n,x;
	cin >> n>>x;

	int a[n];
	for(int i = 0; i < n; i++) {
		cin>>a[i];
	}
	if(x==0) {
		vector<int> v;
		v.push_back(a[0]);
		for(int i = 1; i < n; i++) {
			int l =0, r = v.size();
			while(l<=r) {
				int m = (l+r)/2;
				if(v[m]>=a[i]) {
					r= m-1;
				}
				else {
					l = m+1;
				}
			}
			if(l>=v.size()) v.push_back(a[i]);
			else v[l] = a[i];
		}
		cout << v.size();
		return;
	}
	int ans = 0;
	for(int i = 0; i < n; i++) {
		for(int j = 0; j<=i; j++) {
			a[j]-=x;
		}
		vector<int> v;
		v.push_back(a[0]);
		for(int i1 = 1; i1 < n; i1++) {
			int l =0, r = v.size();
			while(l<=r) {
				int m = (l+r)/2;
				if(v[m]>=a[i1]) {
					r= m-1;
				}
				else {
					l = m+1;
				}
			}
			if(l>=v.size()) v.push_back(a[i1]);
			else v[l] = a[i1];
		}
		ans = max(ans, (int)(v.size()));
		for(int j = 0; j<=i; j++) {
			a[j]+=x;
		}
	}
	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...