Submission #785517

#TimeUsernameProblemLanguageResultExecution timeMemory
785517kebineGlobal Warming (CEOI18_glo)C++17
5 / 100
2074 ms3512 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long

ll findlis(vector<ll> v){
  ll sz = v.size(), maxlen = 0, len;
  stack<ll> st;
  st.push(-3e9);
  for(int i = 0; i < sz; i++){
    if(st.top() >= v[i]){
      while(st.top() >= v[i]){
        st.pop();
        
      }
    }
    st.push(v[i]);
    len = st.size()-1;
    maxlen = max(len, maxlen);
  }
  return maxlen;
}

int main(){
  vector<ll> t, temp;
  ll n, x, input, maxlis = 0;
  cin >> n >> x;
  for(int i = 0; i < n; i++){
    cin >> input;
    t.push_back(input);
  }
  if(x == 0){
    cout << findlis(t) << endl;
    return 0;
  }
  for(int k = x*(-1); k <= x; k++){
    for(int l = 0; l < n; l++){
      temp = t;
      for(int r = l; r < n; r++){
        temp[r] += k;
        maxlis = max(maxlis, findlis(temp));
      }
    }
  }
  cout << maxlis;
}
#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...