Submission #66333334
Source Code Expand
Copy
#include <bits/stdc++.h>using namespace std;using ll = long long;static const ll NEG_INF = -(ll)1e18;struct SegTree {int n, size;vector<ll> t;SegTree(int _n) {n = _n;size = 1;while (size < n) size <<= 1;t.assign(2*size, NEG_INF);}void update(int idx, ll v) {int p = idx + size;t[p] = v;while (p > 1) {p >>= 1;t[p] = max(t[p<<1], t[(p<<1)|1]);}
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
static const ll NEG_INF = -(ll)1e18;
struct SegTree {
int n, size;
vector<ll> t;
SegTree(int _n) {
n = _n;
size = 1;
while (size < n) size <<= 1;
t.assign(2*size, NEG_INF);
}
void update(int idx, ll v) {
int p = idx + size;
t[p] = v;
while (p > 1) {
p >>= 1;
t[p] = max(t[p<<1], t[(p<<1)|1]);
}
}
ll query(int l, int r) {
if (l > r) return NEG_INF;
l += size;
r += size;
ll res = NEG_INF;
while (l <= r) {
if (l & 1) res = max(res, t[l++]);
if (!(r & 1)) res = max(res, t[r--]);
l >>= 1;
r >>= 1;
}
return res;
}
};
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int N;
ll D, R;
cin >> N >> D >> R;
vector<int> H(N);
for (int i = 0; i < N; i++) {
cin >> H[i];
}
vector<int> pos(N+1);
for (int i = 0; i < N; i++) {
pos[ H[i] ] = i;
}
vector<ll> dp(N, 0);
SegTree st(N);
int k = 1;
ll answer = 0;
for (int h = 1; h <= N; h++) {
int i = pos[h];
while (k <= N && k <= h - D) {
int j = pos[k];
st.update(j, dp[j]);
k++;
}
int left = max(0, i - (int)R);
int right = min(N - 1, i + (int)R);
ll mx = st.query(left, right);
if (mx < 0) {
dp[i] = 0;
} else {
dp[i] = 1 + mx;
}
answer = max(answer, dp[i]);
}
cout << answer << "\n";
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | F - Athletic |
| User | OYU__0YU |
| Language | C++ 20 (gcc 12.2) |
| Score | 500 |
| Code Size | 1761 Byte |
| Status | AC |
| Exec Time | 86 ms |
| Memory | 19292 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 500 / 500 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 01_test_00.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt, 01_test_26.txt, 01_test_27.txt, 01_test_28.txt, 01_test_29.txt, 01_test_30.txt, 01_test_31.txt, 01_test_32.txt, 01_test_33.txt, 01_test_34.txt, 01_test_35.txt, 01_test_36.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00.txt | AC | 1 ms | 3420 KiB |
| 00_sample_01.txt | AC | 1 ms | 3500 KiB |
| 01_test_00.txt | AC | 1 ms | 3436 KiB |
| 01_test_01.txt | AC | 1 ms | 3560 KiB |
| 01_test_02.txt | AC | 1 ms | 3616 KiB |
| 01_test_03.txt | AC | 1 ms | 3632 KiB |
| 01_test_04.txt | AC | 1 ms | 3552 KiB |
| 01_test_05.txt | AC | 1 ms | 3564 KiB |
| 01_test_06.txt | AC | 47 ms | 15376 KiB |
| 01_test_07.txt | AC | 79 ms | 18880 KiB |
| 01_test_08.txt | AC | 22 ms | 9352 KiB |
| 01_test_09.txt | AC | 12 ms | 6536 KiB |
| 01_test_10.txt | AC | 21 ms | 9620 KiB |
| 01_test_11.txt | AC | 53 ms | 18064 KiB |
| 01_test_12.txt | AC | 23 ms | 9880 KiB |
| 01_test_13.txt | AC | 2 ms | 3612 KiB |
| 01_test_14.txt | AC | 16 ms | 7148 KiB |
| 01_test_15.txt | AC | 10 ms | 6532 KiB |
| 01_test_16.txt | AC | 56 ms | 16236 KiB |
| 01_test_17.txt | AC | 68 ms | 17484 KiB |
| 01_test_18.txt | AC | 86 ms | 19212 KiB |
| 01_test_19.txt | AC | 75 ms | 19268 KiB |
| 01_test_20.txt | AC | 70 ms | 19092 KiB |
| 01_test_21.txt | AC | 85 ms | 19264 KiB |
| 01_test_22.txt | AC | 73 ms | 19068 KiB |
| 01_test_23.txt | AC | 85 ms | 19168 KiB |
| 01_test_24.txt | AC | 63 ms | 19292 KiB |
| 01_test_25.txt | AC | 41 ms | 19128 KiB |
| 01_test_26.txt | AC | 42 ms | 19108 KiB |
| 01_test_27.txt | AC | 42 ms | 19208 KiB |
| 01_test_28.txt | AC | 42 ms | 19112 KiB |
| 01_test_29.txt | AC | 50 ms | 19088 KiB |
| 01_test_30.txt | AC | 66 ms | 19120 KiB |
| 01_test_31.txt | AC | 65 ms | 19172 KiB |
| 01_test_32.txt | AC | 64 ms | 19068 KiB |
| 01_test_33.txt | AC | 65 ms | 19212 KiB |
| 01_test_34.txt | AC | 65 ms | 19264 KiB |
| 01_test_35.txt | AC | 62 ms | 19264 KiB |
| 01_test_36.txt | AC | 1 ms | 3496 KiB |