Submission #1119023

#TimeUsernameProblemLanguageResultExecution timeMemory
1119023hamzabcGlobal Warming (CEOI18_glo)C++14
58 / 100
2096 ms3156 KiB
#include <bits/stdc++.h>
 
 
using namespace std;
 
 
#define all(x) x.begin(), x.end()
#define mod 1000000007
#define sp << " " <<
#define endl << '\n'
 
#ifdef L
ifstream input("input.txt");
#define cin input
#else
// #define USACO
#ifdef USACO
ifstream input("palpath.in");
ofstream output("palpath.out");
#define cin input
#define cout output
#endif
#endif


signed main() {
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	long long int N, D;
	vector<long long int> LISmanuplated;
	vector<long long int> LISnormal;
	LISmanuplated.push_back(0);
	LISnormal.push_back(0);
	cin >> N >> D;
	for (int i = 0; i < N; i++){
		long long int in;
		cin >> in;
		auto k = lower_bound(all(LISnormal), in + D);
		k = LISmanuplated.begin() + (k - LISnormal.begin());
		if (k == LISmanuplated.end()){
			LISmanuplated.push_back(in);
			k = LISmanuplated.end() - 2;
			while (*k > in){
				*k = in;
				k--;
			}
		}else{
			while (*k > in){
				*k = in;
				k--;
			}
		}
		k = lower_bound(all(LISnormal), in);
		if (k == LISnormal.end()){
			LISnormal.push_back(in);
		}else{
			*k = in;
		}
		k = lower_bound(all(LISmanuplated), in);
		if (k == LISmanuplated.end()){
			LISmanuplated.push_back(in);
		}else{
			*k = in;
		}
	}
	cout << LISmanuplated.size() - 1;
	return 0;
}
#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...