This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "towers.h"
#include <bits/stdc++.h>
using namespace std;
#define f0(i, n) for(int i = 0; i < (n); i++)
#define f1(i, n) for(int i = 1; i <= (n); i++)
#define pb push_back
#define ff first
#define ss second
typedef vector<int> vi;
vector<int> arr;
bool first_time = true;
int mxind = 0;
void init(int N, std::vector<int> H) {
arr = H;
f0(i, N-1) {
if(arr[i] < arr[i+1]) mxind = i+1;
else break;
}
}
int max_towers(int L, int R, int D) {
if(L >= mxind || R <= mxind) return 1;
if(arr[L] + D <= arr[mxind] && arr[R] + D <= arr[mxind]) return 2;
return 1;
// if(first_time) {
// vi hh = vector(arr.begin()+L, arr.end()+R+1);
// int n = R - L + 1;
// int prefmin[n], sufmin[n];
// prefmin[0] = hh[0];
// sufmin[n-1] = hh[n-1];
// f1(i, n-1) {
// prefmin[i] = min(hh[i], prefmin[i-1]);
// sufmin[n - i + 1] = min(hh[n-i+1], sufmin[n-i]);
// }
// int ans = -1;
// f0(i, n) {
// if (
// prefmin[i] + D <= hh[i] &&
// sufmin[i] + D <= hh[i]
// ) {
// ans = max(ans, hh[i]);
// }
// }
// if(ans == -1) return 0;
// // sort(hh.begin(), hh.end());
// int ret = 0;
// f0(i, n) if(hh[i] + D <= ans) ret ++;
// return ret;
// first_time = false;
// }
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... |