Submission #784776

#TimeUsernameProblemLanguageResultExecution timeMemory
784776thimote75송신탑 (IOI22_towers)C++17
11 / 100
4046 ms1560 KiB
#include "towers.h"

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

using idata = vector<int>;

idata heights;
int nbTowers;

void init(int N, idata H) {
  nbTowers = N;
  heights = H;
}

int max_towers(int L, int R, int D) {
  idata dp(nbTowers, 0);

  int res = 0;
  for (int i = R; i >= L; i --) {
    int mx = 0;

    int opt = heights[i];
    for (int j = i + 1; j <= R; j ++) {
      if (max(heights[i], heights[j]) + D <= opt)
        mx = max(mx, dp[j]);

      opt = max(opt, heights[j]);
    }

    dp[i] = mx + 1;
    res = max(res, dp[i]);
  }

  return res;
}
#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...