#include "towers.h"
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
int i;
vector<int> h;
void init(int N, std::vector<int> H) {
while (i+1 < N && H[i] < H[i+1]) i++;
for (int i=0; i<N; i++) h.pb(H[i]);
}
int max_towers(int L, int R, int D) {
if (R<=i || L>=i) return 0;
int lo = L-1, hi = i;
while (hi-lo > 1) {
int mid = (lo+hi) / 2;
h[mid] <= h[i]-D ? lo = mid : hi = mid;
}
int ans = 0;
if (lo >= L) ans += lo-L+1;
lo = i, hi = R+1;
while (hi-lo > 1) {
int mid = (lo+hi) / 2;
h[mid] <= h[i]-D ? hi = mid : lo = mid;
}
if (hi <= R) ans += R-hi+1;
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |