Submission #66331993
Source Code Expand
#include <bits/stdc++.h>
typedef long long int ll;
typedef unsigned long long int ull;
const ll INF_LL = 0x3f3f3f3f3f3f3f3f, MOD = 998244353; //1e9+7
const int INF_INT = 0x3f3f3f3f;
const long double PI = acosl(-1.), EPS = 1e-9;
using namespace std;
template<typename T, T (*op)(T, T), T (*nullel)()>
struct SegmentTree{
vector<T> st;
int n;
SegmentTree(vector<T> &v){
n = v.size();
st.resize(2*n);
build(v);
}
SegmentTree(ll sz){
n = sz;
st.resize(2*n);
}
void build(vector<T> &v){
for(int i=n;i<2*n;i++) st[i] = v[i-n];
for(int i=n-1;i>=1;i--) st[i] = op(st[2*i], st[2*i+1]); //merge op
}
T query(int l, int r){
T ans = nullel();
l += n, r += n;
while(l <= r){
int no = l, c = 1;
while(!(no & 1) && (r-l+1) >= (c << 1)){
c <<= 1;
no >>= 1;
}
ans = op(ans, st[no]); //merge op
l += c;
}
return ans;
}
void update(int l, T val){
l += n;
st[l] = val; //assign or increment?
while(l > 1){
l >>= 1;
st[l] = op(st[2*l], st[2*l+1]); //merge op
}
}
};
int op(int a, int b){
return max(a, b);
}
int el(){
return 0;
}
//cout << fixed << setprecision(6)
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
//freopen("in", "r", stdin); //test input
int n, d, r;
cin >> n >> d >> r;
SegmentTree<int, op, el> st(n+1);
vector<pair<int, int>> vh;
for(int i=1;i<=n;i++){
int h;
cin >> h;
vh.push_back({h, i});
}
sort(vh.begin(), vh.end());
set<tuple<int, int, int>> upd;
int ans = 0;
for(auto &[h, j] : vh){
while(upd.size() && get<0>(*upd.begin()) <= h - d){
st.update(get<1>(*upd.begin()), get<2>(*upd.begin()));
upd.erase(upd.begin());
}
int qr = st.query(max(j - r, 1), min(j + r, n));
ans = max(ans, qr + 1);
upd.insert({h, j, qr + 1});
}
cout << ans-1 << "\n";
}
Submission Info
| Submission Time | |
|---|---|
| Task | F - Athletic |
| User | gabriel88766 |
| Language | C++ 20 (gcc 12.2) |
| Score | 500 |
| Code Size | 2201 Byte |
| Status | AC |
| Exec Time | 223 ms |
| Memory | 42052 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 | 3512 KiB |
| 00_sample_01.txt | AC | 1 ms | 3436 KiB |
| 01_test_00.txt | AC | 1 ms | 3548 KiB |
| 01_test_01.txt | AC | 1 ms | 3444 KiB |
| 01_test_02.txt | AC | 1 ms | 3416 KiB |
| 01_test_03.txt | AC | 1 ms | 3384 KiB |
| 01_test_04.txt | AC | 1 ms | 3540 KiB |
| 01_test_05.txt | AC | 1 ms | 3588 KiB |
| 01_test_06.txt | AC | 104 ms | 9236 KiB |
| 01_test_07.txt | AC | 196 ms | 11156 KiB |
| 01_test_08.txt | AC | 47 ms | 6284 KiB |
| 01_test_09.txt | AC | 29 ms | 4780 KiB |
| 01_test_10.txt | AC | 50 ms | 6308 KiB |
| 01_test_11.txt | AC | 110 ms | 10584 KiB |
| 01_test_12.txt | AC | 54 ms | 6536 KiB |
| 01_test_13.txt | AC | 3 ms | 3616 KiB |
| 01_test_14.txt | AC | 38 ms | 5040 KiB |
| 01_test_15.txt | AC | 22 ms | 4760 KiB |
| 01_test_16.txt | AC | 121 ms | 9680 KiB |
| 01_test_17.txt | AC | 152 ms | 10232 KiB |
| 01_test_18.txt | AC | 203 ms | 11092 KiB |
| 01_test_19.txt | AC | 187 ms | 11160 KiB |
| 01_test_20.txt | AC | 167 ms | 11224 KiB |
| 01_test_21.txt | AC | 210 ms | 11156 KiB |
| 01_test_22.txt | AC | 184 ms | 11100 KiB |
| 01_test_23.txt | AC | 210 ms | 11172 KiB |
| 01_test_24.txt | AC | 146 ms | 11216 KiB |
| 01_test_25.txt | AC | 223 ms | 42052 KiB |
| 01_test_26.txt | AC | 222 ms | 41956 KiB |
| 01_test_27.txt | AC | 62 ms | 11100 KiB |
| 01_test_28.txt | AC | 60 ms | 11160 KiB |
| 01_test_29.txt | AC | 128 ms | 11124 KiB |
| 01_test_30.txt | AC | 137 ms | 11100 KiB |
| 01_test_31.txt | AC | 137 ms | 11148 KiB |
| 01_test_32.txt | AC | 126 ms | 11100 KiB |
| 01_test_33.txt | AC | 132 ms | 11168 KiB |
| 01_test_34.txt | AC | 132 ms | 11128 KiB |
| 01_test_35.txt | AC | 122 ms | 11144 KiB |
| 01_test_36.txt | AC | 1 ms | 3624 KiB |