| 16730 | 2025-05-11 21:51:07 | szil | Siklóernyőzés | cpp17 | Runtime error 23/100 | 375ms | 37612 KiB |
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int MAXN = 200'001;
const int K = 400;
struct segtree1 {
vector<pair<int, int>> tree;
int n;
segtree1() {}
segtree1(int n) : n(n) {
tree.resize(2*n);
}
void upd(int u, int k) {
tree[u + n] = {k, u};
u += n;
for (u /= 2; u >= 1; u /= 2) {
tree[u] = max(tree[2*u], tree[2*u+1]);
}
}
int qry(int l, int r) {
l += n; r += n;
pair<int, int> res = {0, 0};
while (l <= r) {
if (l % 2 == 1) res = max(res, tree[l++]);
if (r % 2 == 0) res = max(res, tree[r--]);
l /= 2; r /= 2;
}
return res.second;
}
};
struct segtree2 {
struct node {
int mx = 0, lazy = 0;
void apply(int x) {
lazy += x;
}
};
vector<node> tree;
segtree2() {}
segtree2(int n) {
tree.resize(8*n);
}
void push(int v) {
node &u = tree[v];
node &l = tree[2*v];
node &r = tree[2*v+1];
u.mx += u.lazy;
l.apply(u.lazy);
r.apply(u.lazy);
u.lazy = 0;
}
void pull(int v) {
push(v);
push(2*v);
push(2*v+1);
node &u = tree[v];
node &l = tree[2*v];
node &r = tree[2*v+1];
u.mx = max(l.mx, r.mx);
}
void upd_add(int v, int tl, int tr, int l, int r, int val) {
if (l > r) return;
if (l == tl && r == tr) {
tree[v].apply(val);
} else {
int tm = (tl + tr) / 2;
upd_add(2*v, tl, tm, l, min(r, tm), val);
upd_add(2*v+1, tm+1, tr, max(l, tm+1), r, val);
pull(v);
}
}
int qry(int v, int tl, int tr, int l, int r) {
if (l > r) return 0;
pull(v);
if (l == tl && r == tr) {
return tree[v].mx;
} else {
int tm = (tl + tr) / 2;
return max(qry(2*v, tl, tm, l, min(r, tm)), qry(2*v+1, tm+1, tr, max(tm+1, l), r));
}
}
};
int a[MAXN], n, q, il[MAXN], ir[MAXN], ans[MAXN];
segtree1 st_max;
segtree2 st_depth;
void calc_depth(int l, int r, int d = 0) {
if (l > r) return;
int u = st_max.qry(l, r);
il[u] = l;
ir[u] = r;
calc_depth(l, u-1, d+1);
calc_depth(u+1, r, d+1);
}
void rem(int idx) {
st_depth.upd_add(1, 1, n, il[idx], ir[idx], -1);
}
void add(int idx) {
st_depth.upd_add(1, 1, n, il[idx], ir[idx], 1);
}
void solve() {
cin >> n >> q;
for (int i = 1; i <= n; i++) cin >> a[i];
st_max = segtree1(n+1);
st_depth = segtree2(n+1);
for (int i = 1; i <= n; i++) st_max.upd(i, a[i]);
calc_depth(1, n);
vector<array<int, 3>> qrys(q);
for (int i = 0; i < q; i++) {
cin >> qrys[i][0] >> qrys[i][1];
qrys[i][2] = i+1;
}
sort(qrys.begin(), qrys.end(), [&](auto a, auto b){
if (a[0] / K == b[0] / K) return a[1] > b[1];
return a[0] < b[0];
});
int l = 1, r = 0;
for (auto [nl, nr, idx] : qrys) {
while (r < nr) add(++r);
while (l > nl) add(--l);
while (r > nr) rem(r--);
while (l < nl) rem(l++);
ans[idx] = st_depth.qry(1, 1, n, l, r)-1;
}
for (int i = 1; i <= q; i++) {
cout << ans[i] << "\n";
}
}
int main() {
ios::sync_with_stdio(0); cin.tie(0);
int t = 1;
// cin >> t;
while (t--) solve();
return 0;
}| Subtask | Sum | Test | Verdict | Time | Memory | ||
|---|---|---|---|---|---|---|---|
| subtask1 | 0/0 | ||||||
| 1 | Accepted | 1ms | 352 KiB | ||||
| 2 | Runtime error | 261ms | 25096 KiB | ||||
| subtask2 | 0/5 | ||||||
| 3 | Runtime error | 287ms | 37612 KiB | ||||
| 4 | Runtime error | 268ms | 25140 KiB | ||||
| 5 | Runtime error | 266ms | 26676 KiB | ||||
| 6 | Runtime error | 282ms | 37588 KiB | ||||
| 7 | Runtime error | 270ms | 33036 KiB | ||||
| 8 | Runtime error | 248ms | 32368 KiB | ||||
| subtask3 | 13/13 | ||||||
| 9 | Accepted | 3ms | 752 KiB | ||||
| 10 | Accepted | 3ms | 564 KiB | ||||
| 11 | Accepted | 3ms | 564 KiB | ||||
| 12 | Accepted | 3ms | 564 KiB | ||||
| 13 | Accepted | 3ms | 564 KiB | ||||
| 14 | Accepted | 3ms | 564 KiB | ||||
| 15 | Accepted | 4ms | 564 KiB | ||||
| 16 | Accepted | 3ms | 564 KiB | ||||
| 17 | Accepted | 3ms | 820 KiB | ||||
| subtask4 | 10/10 | ||||||
| 18 | Accepted | 3ms | 752 KiB | ||||
| 19 | Accepted | 3ms | 564 KiB | ||||
| 20 | Accepted | 3ms | 564 KiB | ||||
| 21 | Accepted | 3ms | 564 KiB | ||||
| 22 | Accepted | 3ms | 564 KiB | ||||
| 23 | Accepted | 3ms | 564 KiB | ||||
| 24 | Accepted | 4ms | 564 KiB | ||||
| 25 | Accepted | 3ms | 564 KiB | ||||
| 26 | Accepted | 3ms | 820 KiB | ||||
| 27 | Accepted | 145ms | 19588 KiB | ||||
| 28 | Accepted | 145ms | 19508 KiB | ||||
| 29 | Accepted | 142ms | 19508 KiB | ||||
| 30 | Accepted | 142ms | 19540 KiB | ||||
| 31 | Accepted | 145ms | 19508 KiB | ||||
| 32 | Accepted | 145ms | 19508 KiB | ||||
| 33 | Accepted | 226ms | 23020 KiB | ||||
| 34 | Accepted | 224ms | 22784 KiB | ||||
| 35 | Accepted | 216ms | 20532 KiB | ||||
| 36 | Accepted | 170ms | 29748 KiB | ||||
| subtask5 | 0/15 | ||||||
| 37 | Accepted | 3ms | 752 KiB | ||||
| 38 | Accepted | 3ms | 564 KiB | ||||
| 39 | Accepted | 3ms | 564 KiB | ||||
| 40 | Accepted | 3ms | 564 KiB | ||||
| 41 | Accepted | 3ms | 564 KiB | ||||
| 42 | Accepted | 3ms | 564 KiB | ||||
| 43 | Accepted | 4ms | 564 KiB | ||||
| 44 | Accepted | 3ms | 564 KiB | ||||
| 45 | Accepted | 3ms | 820 KiB | ||||
| 46 | Runtime error | 79ms | 5424 KiB | ||||
| 47 | Runtime error | 79ms | 4916 KiB | ||||
| 48 | Runtime error | 78ms | 4916 KiB | ||||
| 49 | Runtime error | 75ms | 4916 KiB | ||||
| 50 | Runtime error | 79ms | 5112 KiB | ||||
| 51 | Runtime error | 79ms | 4984 KiB | ||||
| 52 | Runtime error | 79ms | 5172 KiB | ||||
| 53 | Runtime error | 79ms | 4984 KiB | ||||
| 54 | Runtime error | 81ms | 5184 KiB | ||||
| 55 | Runtime error | 81ms | 5172 KiB | ||||
| 56 | Runtime error | 79ms | 5116 KiB | ||||
| 57 | Runtime error | 79ms | 4992 KiB | ||||
| subtask6 | 0/10 | ||||||
| 58 | Runtime error | 237ms | 23860 KiB | ||||
| 59 | Runtime error | 231ms | 23860 KiB | ||||
| 60 | Runtime error | 234ms | 23860 KiB | ||||
| 61 | Runtime error | 231ms | 24072 KiB | ||||
| 62 | Runtime error | 231ms | 23912 KiB | ||||
| 63 | Runtime error | 237ms | 23840 KiB | ||||
| 64 | Runtime error | 337ms | 26932 KiB | ||||
| 65 | Runtime error | 324ms | 26204 KiB | ||||
| 66 | Runtime error | 312ms | 24824 KiB | ||||
| 67 | Runtime error | 248ms | 27700 KiB | ||||
| subtask7 | 0/11 | ||||||
| 68 | Accepted | 3ms | 752 KiB | ||||
| 69 | Accepted | 3ms | 564 KiB | ||||
| 70 | Accepted | 3ms | 564 KiB | ||||
| 71 | Accepted | 3ms | 564 KiB | ||||
| 72 | Accepted | 3ms | 564 KiB | ||||
| 73 | Accepted | 3ms | 564 KiB | ||||
| 74 | Accepted | 4ms | 564 KiB | ||||
| 75 | Accepted | 3ms | 564 KiB | ||||
| 76 | Accepted | 3ms | 820 KiB | ||||
| 77 | Accepted | 145ms | 19588 KiB | ||||
| 78 | Accepted | 145ms | 19508 KiB | ||||
| 79 | Accepted | 142ms | 19508 KiB | ||||
| 80 | Accepted | 142ms | 19540 KiB | ||||
| 81 | Accepted | 145ms | 19508 KiB | ||||
| 82 | Accepted | 145ms | 19508 KiB | ||||
| 83 | Accepted | 226ms | 23020 KiB | ||||
| 84 | Accepted | 224ms | 22784 KiB | ||||
| 85 | Accepted | 216ms | 20532 KiB | ||||
| 86 | Accepted | 170ms | 29748 KiB | ||||
| 87 | Runtime error | 237ms | 23860 KiB | ||||
| 88 | Runtime error | 231ms | 23860 KiB | ||||
| 89 | Runtime error | 234ms | 23860 KiB | ||||
| 90 | Runtime error | 231ms | 24072 KiB | ||||
| 91 | Runtime error | 231ms | 23912 KiB | ||||
| 92 | Runtime error | 237ms | 23840 KiB | ||||
| 93 | Runtime error | 337ms | 26932 KiB | ||||
| 94 | Runtime error | 324ms | 26204 KiB | ||||
| 95 | Runtime error | 312ms | 24824 KiB | ||||
| 96 | Runtime error | 248ms | 27700 KiB | ||||
| 97 | Runtime error | 187ms | 24628 KiB | ||||
| 98 | Runtime error | 187ms | 24628 KiB | ||||
| 99 | Runtime error | 182ms | 24628 KiB | ||||
| 100 | Runtime error | 181ms | 24508 KiB | ||||
| 101 | Runtime error | 186ms | 24628 KiB | ||||
| 102 | Runtime error | 180ms | 24628 KiB | ||||
| 103 | Runtime error | 254ms | 27700 KiB | ||||
| 104 | Runtime error | 244ms | 26252 KiB | ||||
| 105 | Runtime error | 237ms | 25396 KiB | ||||
| 106 | Runtime error | 201ms | 31284 KiB | ||||
| subtask8 | 0/21 | ||||||
| 107 | Accepted | 1ms | 316 KiB | ||||
| 108 | Runtime error | 261ms | 21300 KiB | ||||
| 109 | Runtime error | 259ms | 25064 KiB | ||||
| 110 | Runtime error | 257ms | 24884 KiB | ||||
| 111 | Runtime error | 264ms | 25140 KiB | ||||
| 112 | Runtime error | 261ms | 25052 KiB | ||||
| 113 | Runtime error | 259ms | 25140 KiB | ||||
| 114 | Runtime error | 263ms | 25140 KiB | ||||
| 115 | Runtime error | 234ms | 23920 KiB | ||||
| 116 | Runtime error | 236ms | 23860 KiB | ||||
| 117 | Runtime error | 234ms | 23848 KiB | ||||
| 118 | Runtime error | 240ms | 23860 KiB | ||||
| 119 | Runtime error | 239ms | 23840 KiB | ||||
| 120 | Runtime error | 234ms | 23980 KiB | ||||
| 121 | Runtime error | 261ms | 25140 KiB | ||||
| 122 | Runtime error | 263ms | 24884 KiB | ||||
| subtask9 | 0/15 | ||||||
| 123 | Accepted | 1ms | 316 KiB | ||||
| 124 | Runtime error | 261ms | 21300 KiB | ||||
| 125 | Runtime error | 287ms | 37612 KiB | ||||
| 126 | Runtime error | 268ms | 25140 KiB | ||||
| 127 | Runtime error | 266ms | 26676 KiB | ||||
| 128 | Runtime error | 282ms | 37588 KiB | ||||
| 129 | Runtime error | 270ms | 33036 KiB | ||||
| 130 | Runtime error | 248ms | 32368 KiB | ||||
| 131 | Accepted | 3ms | 752 KiB | ||||
| 132 | Accepted | 3ms | 564 KiB | ||||
| 133 | Accepted | 3ms | 564 KiB | ||||
| 134 | Accepted | 3ms | 564 KiB | ||||
| 135 | Accepted | 3ms | 564 KiB | ||||
| 136 | Accepted | 3ms | 564 KiB | ||||
| 137 | Accepted | 4ms | 564 KiB | ||||
| 138 | Accepted | 3ms | 564 KiB | ||||
| 139 | Accepted | 3ms | 820 KiB | ||||
| 140 | Accepted | 145ms | 19588 KiB | ||||
| 141 | Accepted | 145ms | 19508 KiB | ||||
| 142 | Accepted | 142ms | 19508 KiB | ||||
| 143 | Accepted | 142ms | 19540 KiB | ||||
| 144 | Accepted | 145ms | 19508 KiB | ||||
| 145 | Accepted | 145ms | 19508 KiB | ||||
| 146 | Accepted | 226ms | 23020 KiB | ||||
| 147 | Accepted | 224ms | 22784 KiB | ||||
| 148 | Accepted | 216ms | 20532 KiB | ||||
| 149 | Accepted | 170ms | 29748 KiB | ||||
| 150 | Runtime error | 79ms | 5424 KiB | ||||
| 151 | Runtime error | 79ms | 4916 KiB | ||||
| 152 | Runtime error | 78ms | 4916 KiB | ||||
| 153 | Runtime error | 75ms | 4916 KiB | ||||
| 154 | Runtime error | 79ms | 5112 KiB | ||||
| 155 | Runtime error | 79ms | 4984 KiB | ||||
| 156 | Runtime error | 79ms | 5172 KiB | ||||
| 157 | Runtime error | 79ms | 4984 KiB | ||||
| 158 | Runtime error | 81ms | 5184 KiB | ||||
| 159 | Runtime error | 81ms | 5172 KiB | ||||
| 160 | Runtime error | 79ms | 5116 KiB | ||||
| 161 | Runtime error | 79ms | 4992 KiB | ||||
| 162 | Runtime error | 237ms | 23860 KiB | ||||
| 163 | Runtime error | 231ms | 23860 KiB | ||||
| 164 | Runtime error | 234ms | 23860 KiB | ||||
| 165 | Runtime error | 231ms | 24072 KiB | ||||
| 166 | Runtime error | 231ms | 23912 KiB | ||||
| 167 | Runtime error | 237ms | 23840 KiB | ||||
| 168 | Runtime error | 337ms | 26932 KiB | ||||
| 169 | Runtime error | 324ms | 26204 KiB | ||||
| 170 | Runtime error | 312ms | 24824 KiB | ||||
| 171 | Runtime error | 248ms | 27700 KiB | ||||
| 172 | Runtime error | 187ms | 24628 KiB | ||||
| 173 | Runtime error | 187ms | 24628 KiB | ||||
| 174 | Runtime error | 182ms | 24628 KiB | ||||
| 175 | Runtime error | 181ms | 24508 KiB | ||||
| 176 | Runtime error | 186ms | 24628 KiB | ||||
| 177 | Runtime error | 180ms | 24628 KiB | ||||
| 178 | Runtime error | 254ms | 27700 KiB | ||||
| 179 | Runtime error | 244ms | 26252 KiB | ||||
| 180 | Runtime error | 237ms | 25396 KiB | ||||
| 181 | Runtime error | 201ms | 31284 KiB | ||||
| 182 | Runtime error | 259ms | 25064 KiB | ||||
| 183 | Runtime error | 257ms | 24884 KiB | ||||
| 184 | Runtime error | 264ms | 25140 KiB | ||||
| 185 | Runtime error | 261ms | 25052 KiB | ||||
| 186 | Runtime error | 259ms | 25140 KiB | ||||
| 187 | Runtime error | 263ms | 25140 KiB | ||||
| 188 | Runtime error | 234ms | 23920 KiB | ||||
| 189 | Runtime error | 236ms | 23860 KiB | ||||
| 190 | Runtime error | 234ms | 23848 KiB | ||||
| 191 | Runtime error | 240ms | 23860 KiB | ||||
| 192 | Runtime error | 239ms | 23840 KiB | ||||
| 193 | Runtime error | 234ms | 23980 KiB | ||||
| 194 | Runtime error | 261ms | 25140 KiB | ||||
| 195 | Runtime error | 263ms | 24884 KiB | ||||
| 196 | Runtime error | 368ms | 28208 KiB | ||||
| 197 | Runtime error | 370ms | 28212 KiB | ||||
| 198 | Runtime error | 375ms | 27780 KiB | ||||
| 199 | Runtime error | 356ms | 26420 KiB | ||||
| 200 | Runtime error | 351ms | 26164 KiB | ||||
| 201 | Runtime error | 349ms | 25928 KiB | ||||
| 202 | Runtime error | 340ms | 25512 KiB | ||||
| 203 | Runtime error | 342ms | 25316 KiB | ||||
| 204 | Runtime error | 321ms | 25140 KiB | ||||
| 205 | Runtime error | 317ms | 25148 KiB | ||||