#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 110000;
const int INF = (int)(1e9+1);
int n, h[N], p[N], opt;
void init(int N, vector<int> H) {
n = N;
for (int i = 1; i <= n; i++)
h[i] = H[i - 1];
h[0] = h[n + 1] = INF;
for (int i = 1; i <= n; i++) {
p[i] = p[i - 1];
if (h[i - 1] > h[i] && h[i] < h[i + 1])
p[i]++;
}
}
int max_towers(int L, int R, int D) {
L++; R++;
if (L == R) return 1;
int ans = p[R] - p[L - 1];
if (h[L - 1] < h[L] && h[L] < h[L + 1]) ans++;
if (h[R - 1] > h[R] && h[R] > h[R + 1]) ans++;
return ans;
}
/*
int main() {
int N, Q;
assert(2 == scanf("%d %d", &N, &Q));
std::vector<int> H(N);
for (int i = 0; i < N; ++i) {
assert(1 == scanf("%d", &H[i]));
}
init(N, H);
for (int i = 0; i < Q; ++i) {
int L, R, D;
assert(3 == scanf("%d %d %d", &L, &R, &D));
printf("%d\n", max_towers(L, R, D));
}
return 0;
}
//*/
# | 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... |