Submission #969720

#TimeUsernameProblemLanguageResultExecution timeMemory
969720vjudge1Global Warming (CEOI18_glo)C++17
0 / 100
44 ms4808 KiB
/*
 * With a little appreciation, in a mostly hollow tone, she says, "Delightful." As if the world has any meaning.
 * TASK : Global Warming
 * AUTHOR : Marszpace
*/

#include<bits/stdc++.h>
using namespace std;
#define int long long

int32_t main(){
  ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
  int n,x;
  cin >> n >> x;
  vector<int> arr(n);
  for(int i=0;i<n;i++){
    cin >> arr[i];
  }

  vector<int> lis,len,tail;
  for(int i=0;i<n;i++){
    int idx;
    if(lis.empty()||lis.back()<arr[i]){
      idx=lis.size();
      lis.push_back(arr[i]);
    }
    else{
      idx=lower_bound(lis.begin(),lis.end(),arr[i])-lis.begin();
      lis[idx]=arr[i];
    }
    tail.push_back(idx+1);
    arr[i]=-1*arr[i];
  }

  int res=lis.size();
  lis.clear();
  for(int i=n-1;i>=1;i--){
    int first=lower_bound(lis.begin(),lis.end(),arr[i]+x)-lis.begin();
    res=max(res,first+tail[i-1]);
    if(lis.empty()||lis.back()<arr[i]){
      lis.push_back(arr[i]);
    }
    else{
      int idx=lower_bound(lis.begin(),lis.end(),arr[i])-lis.begin();
      lis[idx]=arr[i];
    }
  }
  cout << res;
  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...