제출 #634083

#제출 시각아이디문제언어결과실행 시간메모리
634083Utaha송신탑 (IOI22_towers)C++17
0 / 100
4074 ms1436 KiB
#include "towers.h"

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

int n;
vector<int> H;

void init(int _N, std::vector<int> _H) {
  n = _N;
  H = _H;
}

int f(int l, int r, int D, int maxHeight) {
  int highest = -1;
  int count = 0;
  for(int i = l; i < r; i++) {
    if (H[i] > maxHeight) continue;
    count += 1;
    if (highest == -1 || H[i] > H[highest]) {
      highest = i;
    }
  }
  if (count <= 1) {
    return count;
  }
  else{
    return max(1, f(l, highest, D, H[highest] - D) + f(highest + 1, r, D, H[highest] - D));
  }
}

int max_towers(int L, int R, int D) {
  return f(L, R + 1, D, 2000000000 + 5);
}
#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...