#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define int ll
#define pii pair<int, int>
#define ppi pair<pii, int>
#define pip pair<int, pii>
#define f first
#define s second
#define pb push_back
#define ALL(x) (x).begin(), (x).end()
#define FOR(i, a, b) for (int i = (a); i < (b); i++)
#define REP(i, n) FOR(i, 0, n)
#define REP1(i, n) FOR(i, 1, n+1)
#define RREP(i, n) for (int i = (n)-1; i >= 0; i--)
#define SZ(x) (int)((x).size())
const ll maxn = 2e5+5;
const ll inf = (1ll<<60);
const ll mod = 1e9+7;
vector<int> seg(4*maxn);
int query(int l, int r, int nl, int nr, int x){
if (l > nr || r < nl) return -1;
if (l <= nl && nr <= r) return seg[x];
int mid = (nl+nr)>>1;
return max(query(l, r, nl, mid, x+x), query(l, r, mid+1, nr, x+x+1));
}
void modify(int l, int r, int p, int v, int x){
if (l == r){
seg[x] = max(seg[x], v);
return;
}
int mid = (l+r)>>1;
if (l <= p && p <= mid){
modify(l, mid, p, v, x+x);
}
else modify(mid+1, r, p, v, x+x+1);
seg[x] = max(seg[x+x], seg[x+x+1]);
}
vector<int> ans(maxn);
int n, q;
vector<pip> in;
vector<pip> md, qu;
bool cmp(pip a, pip b){
return a.s.s < b.s.s;
}
signed main(){
ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
fill(ALL(seg), -1);
cin>>n;
in.pb({0, {0, 0}});
REP1(i, n){
int h, a, b; cin>>h>>a>>b;
in.pb({h, {a, b}});
for (int j = i-a; j >= 1; j--){
if (i-j > b) break;
if (in[j].s.f <= i-j && in[j].s.s >= i-j){
md.pb({abs(in[j].f-in[i].f), {j, i}});
}
}
}
cin>>q;
REP(i, q){
int l, r; cin>>l>>r;
qu.pb({i, {l, r}});
}
sort(ALL(md), cmp);
sort(ALL(qu), cmp);
int pa = 0;
REP(i, q){
while(pa < SZ(md) && md[pa].s.s <= qu[i].s.s){
modify(1, n, md[pa].s.f, md[pa].f, 1);
pa++;
}
ans[qu[i].f] = query(qu[i].s.f, qu[i].s.s, 1, n, 1);
}
REP(i, q) cout<<ans[i]<<endl;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
3 ms |
8284 KB |
Output is correct |
2 |
Correct |
4 ms |
8500 KB |
Output is correct |
3 |
Correct |
3 ms |
8284 KB |
Output is correct |
4 |
Correct |
3 ms |
8284 KB |
Output is correct |
5 |
Correct |
3 ms |
8284 KB |
Output is correct |
6 |
Correct |
3 ms |
8284 KB |
Output is correct |
7 |
Correct |
3 ms |
8284 KB |
Output is correct |
8 |
Correct |
3 ms |
8284 KB |
Output is correct |
9 |
Correct |
3 ms |
8280 KB |
Output is correct |
10 |
Correct |
3 ms |
8284 KB |
Output is correct |
11 |
Correct |
3 ms |
8284 KB |
Output is correct |
12 |
Correct |
3 ms |
8336 KB |
Output is correct |
13 |
Correct |
4 ms |
8536 KB |
Output is correct |
14 |
Correct |
2 ms |
8284 KB |
Output is correct |
15 |
Correct |
3 ms |
8340 KB |
Output is correct |
16 |
Correct |
3 ms |
8284 KB |
Output is correct |
17 |
Correct |
3 ms |
8252 KB |
Output is correct |
18 |
Correct |
3 ms |
8284 KB |
Output is correct |
19 |
Correct |
2 ms |
8284 KB |
Output is correct |
20 |
Correct |
3 ms |
8284 KB |
Output is correct |
21 |
Correct |
3 ms |
8284 KB |
Output is correct |
22 |
Correct |
3 ms |
8284 KB |
Output is correct |
23 |
Correct |
3 ms |
8284 KB |
Output is correct |
24 |
Correct |
3 ms |
8284 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
3 ms |
8284 KB |
Output is correct |
2 |
Correct |
4 ms |
8500 KB |
Output is correct |
3 |
Correct |
3 ms |
8284 KB |
Output is correct |
4 |
Correct |
3 ms |
8284 KB |
Output is correct |
5 |
Correct |
3 ms |
8284 KB |
Output is correct |
6 |
Correct |
3 ms |
8284 KB |
Output is correct |
7 |
Correct |
3 ms |
8284 KB |
Output is correct |
8 |
Correct |
3 ms |
8284 KB |
Output is correct |
9 |
Correct |
3 ms |
8280 KB |
Output is correct |
10 |
Correct |
3 ms |
8284 KB |
Output is correct |
11 |
Correct |
3 ms |
8284 KB |
Output is correct |
12 |
Correct |
3 ms |
8336 KB |
Output is correct |
13 |
Correct |
4 ms |
8536 KB |
Output is correct |
14 |
Correct |
2 ms |
8284 KB |
Output is correct |
15 |
Correct |
3 ms |
8340 KB |
Output is correct |
16 |
Correct |
3 ms |
8284 KB |
Output is correct |
17 |
Correct |
3 ms |
8252 KB |
Output is correct |
18 |
Correct |
3 ms |
8284 KB |
Output is correct |
19 |
Correct |
2 ms |
8284 KB |
Output is correct |
20 |
Correct |
3 ms |
8284 KB |
Output is correct |
21 |
Correct |
3 ms |
8284 KB |
Output is correct |
22 |
Correct |
3 ms |
8284 KB |
Output is correct |
23 |
Correct |
3 ms |
8284 KB |
Output is correct |
24 |
Correct |
3 ms |
8284 KB |
Output is correct |
25 |
Correct |
225 ms |
17232 KB |
Output is correct |
26 |
Correct |
38 ms |
12016 KB |
Output is correct |
27 |
Correct |
305 ms |
20876 KB |
Output is correct |
28 |
Correct |
318 ms |
20300 KB |
Output is correct |
29 |
Correct |
221 ms |
16956 KB |
Output is correct |
30 |
Correct |
211 ms |
20116 KB |
Output is correct |
31 |
Correct |
283 ms |
16588 KB |
Output is correct |
32 |
Correct |
309 ms |
19868 KB |
Output is correct |
33 |
Correct |
283 ms |
18072 KB |
Output is correct |
34 |
Correct |
159 ms |
17648 KB |
Output is correct |
35 |
Correct |
333 ms |
19256 KB |
Output is correct |
36 |
Correct |
317 ms |
20640 KB |
Output is correct |
37 |
Correct |
171 ms |
12632 KB |
Output is correct |
38 |
Correct |
292 ms |
17888 KB |
Output is correct |
39 |
Correct |
43 ms |
9624 KB |
Output is correct |
40 |
Correct |
300 ms |
17104 KB |
Output is correct |
41 |
Correct |
250 ms |
16308 KB |
Output is correct |
42 |
Correct |
298 ms |
16712 KB |
Output is correct |
43 |
Correct |
117 ms |
10984 KB |
Output is correct |
44 |
Correct |
291 ms |
17672 KB |
Output is correct |
45 |
Correct |
52 ms |
10480 KB |
Output is correct |
46 |
Correct |
291 ms |
17380 KB |
Output is correct |
47 |
Correct |
78 ms |
10480 KB |
Output is correct |
48 |
Correct |
298 ms |
18184 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Runtime error |
414 ms |
524288 KB |
Execution killed with signal 9 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
3 ms |
8284 KB |
Output is correct |
2 |
Correct |
4 ms |
8500 KB |
Output is correct |
3 |
Correct |
3 ms |
8284 KB |
Output is correct |
4 |
Correct |
3 ms |
8284 KB |
Output is correct |
5 |
Correct |
3 ms |
8284 KB |
Output is correct |
6 |
Correct |
3 ms |
8284 KB |
Output is correct |
7 |
Correct |
3 ms |
8284 KB |
Output is correct |
8 |
Correct |
3 ms |
8284 KB |
Output is correct |
9 |
Correct |
3 ms |
8280 KB |
Output is correct |
10 |
Correct |
3 ms |
8284 KB |
Output is correct |
11 |
Correct |
3 ms |
8284 KB |
Output is correct |
12 |
Correct |
3 ms |
8336 KB |
Output is correct |
13 |
Correct |
4 ms |
8536 KB |
Output is correct |
14 |
Correct |
2 ms |
8284 KB |
Output is correct |
15 |
Correct |
3 ms |
8340 KB |
Output is correct |
16 |
Correct |
3 ms |
8284 KB |
Output is correct |
17 |
Correct |
3 ms |
8252 KB |
Output is correct |
18 |
Correct |
3 ms |
8284 KB |
Output is correct |
19 |
Correct |
2 ms |
8284 KB |
Output is correct |
20 |
Correct |
3 ms |
8284 KB |
Output is correct |
21 |
Correct |
3 ms |
8284 KB |
Output is correct |
22 |
Correct |
3 ms |
8284 KB |
Output is correct |
23 |
Correct |
3 ms |
8284 KB |
Output is correct |
24 |
Correct |
3 ms |
8284 KB |
Output is correct |
25 |
Correct |
225 ms |
17232 KB |
Output is correct |
26 |
Correct |
38 ms |
12016 KB |
Output is correct |
27 |
Correct |
305 ms |
20876 KB |
Output is correct |
28 |
Correct |
318 ms |
20300 KB |
Output is correct |
29 |
Correct |
221 ms |
16956 KB |
Output is correct |
30 |
Correct |
211 ms |
20116 KB |
Output is correct |
31 |
Correct |
283 ms |
16588 KB |
Output is correct |
32 |
Correct |
309 ms |
19868 KB |
Output is correct |
33 |
Correct |
283 ms |
18072 KB |
Output is correct |
34 |
Correct |
159 ms |
17648 KB |
Output is correct |
35 |
Correct |
333 ms |
19256 KB |
Output is correct |
36 |
Correct |
317 ms |
20640 KB |
Output is correct |
37 |
Correct |
171 ms |
12632 KB |
Output is correct |
38 |
Correct |
292 ms |
17888 KB |
Output is correct |
39 |
Correct |
43 ms |
9624 KB |
Output is correct |
40 |
Correct |
300 ms |
17104 KB |
Output is correct |
41 |
Correct |
250 ms |
16308 KB |
Output is correct |
42 |
Correct |
298 ms |
16712 KB |
Output is correct |
43 |
Correct |
117 ms |
10984 KB |
Output is correct |
44 |
Correct |
291 ms |
17672 KB |
Output is correct |
45 |
Correct |
52 ms |
10480 KB |
Output is correct |
46 |
Correct |
291 ms |
17380 KB |
Output is correct |
47 |
Correct |
78 ms |
10480 KB |
Output is correct |
48 |
Correct |
298 ms |
18184 KB |
Output is correct |
49 |
Runtime error |
414 ms |
524288 KB |
Execution killed with signal 9 |
50 |
Halted |
0 ms |
0 KB |
- |