Submission #940026

#TimeUsernameProblemLanguageResultExecution timeMemory
940026vjudge1Global Warming (CEOI18_glo)C++17
100 / 100
97 ms9528 KiB
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
#define fr first
#define sc second
#define ll long long
#define int long long
const int N=1e5+5;
void solve(){
	int n,x;cin>>n>>x;
	vector<int> a(n),pref(n+1),suf(n+1);
	for(int i=0;i<n;i++)
		cin>>a[i];
	vector<int> lis(n,1e10),lds(n,1e10);
	for(int i=n-1;i>=0;i--){
		int it=lower_bound(all(lds),-a[i])-lds.begin();
		if(lds[it]>-a[i])
			lds[it]=-a[i];
		suf[i]=it+1;
	}
	int ans=0;
	
	for(int i=0;i<n;i++){
		int It=lower_bound(all(lis),a[i]+x)-lis.begin();
		ans=max(ans,It+suf[i]);
		int it=lower_bound(all(lis),a[i])-lis.begin();
		if(lis[it]>a[i])
			lis[it]=a[i];
		pref[i]=it+1;
		
	}
	
	cout<<ans<<endl;
}
main(){
    int T=1;
    //cin>>T;
    while(T--){
        solve();
    }
}
/*
12 2
2 3 3 8 1 5 6 7 8 3 5 4
2 1
2 7
3 4
4 7
7 6
5 6
6 8
6 9
7 10
10 11
10 12
*/

Compilation message (stderr)

glo.cpp:37:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   37 | main(){
      | ^~~~
#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...