# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
123327 |
2019-07-01T07:24:42 Z |
김세빈(#3018) |
Two Antennas (JOI19_antennas) |
C++14 |
|
188 ms |
17668 KB |
#include <bits/stdc++.h>
using namespace std;
typedef pair <int, int> pii;
struct segtree{
pii T[606060];
int sz = 1 << 18;
pii add(pii pa, pii pb)
{
return pii(min(pa.first, pb.first),
max(pa.second, pb.second));
}
void insert(int p, pii v)
{
p += sz; T[p] = v;
for(p>>=1; p; p>>=1){
T[p] = add(T[p << 1], T[p << 1 | 1]);
}
}
pii getval(int l, int r)
{
pii ret(1e9 + 1, -1e9 - 1);
l += sz; r += sz;
for(; l<=r; ){
if(l & 1) ret = add(ret, T[l]);
if(~r & 1) ret = add(ret, T[r]);
l = l + 1 >> 1;
r = r - 1 >> 1;
}
return ret;
}
};
segtree T;
vector <int> V[202020];
int H[202020], A[202020], B[202020];
int n, ans;
int main()
{
int q, i, l, r, x, y;
scanf("%d", &n);
for(i=1; i<=n; i++){
scanf("%d%d%d", H + i, A + i, B + i);
if(i + A[i] <= n) V[i + A[i]].push_back(i);
if(i + B[i] + 1 <= n) V[i + B[i] + 1].push_back(-i);
}
scanf("%d", &q);
if(q != 1) return 0;
for(i=1; i<=n; i++){
T.insert(i, pii(1e9 + 1, -1e9 - 1));
}
ans = -1;
for(i=1; i<=n; i++){
for(int &t: V[i]){
if(t > 0) T.insert(t, pii(H[t], H[t]));
else T.insert(-t, pii(1e9 + 1, -1e9 - 1));
}
if(i - A[i] < 1) continue;
l = max(1, i - B[i]); r = i - A[i];
tie(x, y) = T.getval(l, r);
ans = max(ans, H[i] - x);
ans = max(ans, y - H[i]);
}
printf("%d\n", ans);
return 0;
}
Compilation message
antennas.cpp: In member function 'pii segtree::getval(int, int)':
antennas.cpp:35:10: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
l = l + 1 >> 1;
~~^~~
antennas.cpp:36:10: warning: suggest parentheses around '-' inside '>>' [-Wparentheses]
r = r - 1 >> 1;
~~^~~
antennas.cpp: In function 'int main()':
antennas.cpp:52:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%d", &n);
~~~~~^~~~~~~~~~
antennas.cpp:55:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d%d", H + i, A + i, B + i);
~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
antennas.cpp:60:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%d", &q);
~~~~~^~~~~~~~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
6 ms |
5112 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
6 ms |
5112 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
156 ms |
12664 KB |
Output is correct |
2 |
Correct |
172 ms |
13560 KB |
Output is correct |
3 |
Correct |
120 ms |
11000 KB |
Output is correct |
4 |
Correct |
175 ms |
13456 KB |
Output is correct |
5 |
Correct |
86 ms |
9028 KB |
Output is correct |
6 |
Correct |
180 ms |
13564 KB |
Output is correct |
7 |
Correct |
156 ms |
12408 KB |
Output is correct |
8 |
Correct |
183 ms |
17668 KB |
Output is correct |
9 |
Correct |
29 ms |
7160 KB |
Output is correct |
10 |
Correct |
185 ms |
17656 KB |
Output is correct |
11 |
Correct |
110 ms |
13276 KB |
Output is correct |
12 |
Correct |
188 ms |
17528 KB |
Output is correct |
13 |
Correct |
109 ms |
15732 KB |
Output is correct |
14 |
Correct |
109 ms |
15640 KB |
Output is correct |
15 |
Correct |
108 ms |
15736 KB |
Output is correct |
16 |
Correct |
116 ms |
16204 KB |
Output is correct |
17 |
Correct |
110 ms |
15988 KB |
Output is correct |
18 |
Correct |
121 ms |
16196 KB |
Output is correct |
19 |
Correct |
107 ms |
15724 KB |
Output is correct |
20 |
Correct |
110 ms |
15732 KB |
Output is correct |
21 |
Correct |
104 ms |
15384 KB |
Output is correct |
22 |
Correct |
108 ms |
15732 KB |
Output is correct |
23 |
Correct |
108 ms |
15728 KB |
Output is correct |
24 |
Correct |
108 ms |
15864 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
6 ms |
5112 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |