Submission #908633

#TimeUsernameProblemLanguageResultExecution timeMemory
908633Trisanu_DasFinancial Report (JOI21_financial)C++17
0 / 100
4102 ms5972 KiB
#include <bits/stdc++.h>
using namespace std;
 
int n, d, a[300005], memo[300005];
 
int dp(int i){
  if(i == n) return 1;
  if(memo[i] != -1) return memo[i];
  memo[i] = 0; int l = i;
  for(int j = i + 1; j - l <= d && j <= n; j++){
    if(a[j] <= a[i]) l = j;
    else memo[i] = max(memo[i], dp(j));
  }
  memo[i]++;
  return memo[i];
}
 
int main(){
  ios_base::sync_with_stdio(false); cin.tie(NULL);
  cin >> n >> d;
  for(int i = 1; i <= n; i++) cin >> a[i];
  memset(memo, -1, sizeof(memo));
  int ans = 0;
  for(int i = 0; i <= n; i++) ans = max(ans, dp(i));
  cout << ans << '\n';
}
#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...