이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "bits/stdc++.h"
using namespace std;
/*
// sub 1 {{{
int k = -1;
std::vector<int> a;
void init(int n, std::vector<int> _a) {
assert((int) _a.size() == n);
a = _a;
k = max_element(a.begin(), a.end()) - a.begin();
}
int max_towers(int l, int r, int d) {
if (k < l || r < k) return 1;
if (a[l] <= a[k] - d && a[r] <= a[k] - d) return 2;
return 1;
}
// }}}
*/
// sub 2 {{{
std::vector<int> a;
void init(int n, std::vector<int> _a) {
assert((int) _a.size() == n);
a = _a;
}
int max_towers(int l, int r, int d) {
std::vector<int> f(a.size());
for (int i = l; i <= r; ++i) {
f[i] = 1;
int max_tower = -1;
for (int j = i - 1; j >= l; --j) {
if (a[i] <= max_tower - d
&& a[j] <= max_tower - d) {
f[i] = std::max(f[i], f[j] + 1);
}
max_tower = std::max(max_tower, a[j]);
}
}
return *max_element(f.begin(), f.end());
}
// }}}
# | 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... |