제출 #1365757

#제출 시각아이디문제언어결과실행 시간메모리
1365757avighna송신탑 (IOI22_towers)C++20
0 / 100
4091 ms8372 KiB
#include <bits/stdc++.h>

using namespace std;

namespace {
int N;
vector<int> H;
} // namespace

void init(int N, vector<int> H) {
  ::N = N, ::H = H;
}

int max_towers(int L, int R, int D) {
  auto dfs = [&](auto &&self, int l, int r) {
    if (l > r) return 0;
    int big = *max_element(H.begin() + l, H.begin() + r + 1);
    vector<bool> active(r - l + 1);
    for (int i = l; i <= r; ++i) {
      active[i - l] = H[i] < big - D;
    }
    int ans = 0;
    for (int i = 0; i < r - l + 1; ++i) {
      if (!active[i]) continue;
      int j = i;
      while (j + 1 < r - l + 1 && active[j + 1]) j++;
      ans += self(self, i + l, j + l);
      i = j;
    }
    return max(ans, 1);
  };
  int ans = dfs(dfs, L, R);
  return ans;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…