# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
754566 | 2023-06-08T05:30:54 Z | boris_mihov | Radio Towers (IOI22_towers) | C++17 | 4000 ms | 10028 KB |
#include <algorithm> #include <iostream> #include <numeric> #include <cassert> #include <vector> #include <stack> typedef long long llong; const int MAXLOG = 20 + 5; const int MAXN = 100000 + 10; const int INF = 1e9; int n; struct Sparse { int sparse[MAXLOG][MAXN]; int lg[MAXN]; void build(int _vals[]) { for (int i = 1 ; i <= n ; ++i) { sparse[0][i] = _vals[i]; } for (int log = 1 ; (1 << log) <= n ; ++log) { for (int i = 1 ; i + (1 << log) - 1 <= n ; ++i) { sparse[log][i] = std::max(sparse[log - 1][i], sparse[log - 1][i + (1 << log - 1)]); } } for (int i = 1 ; i <= n ; ++i) { lg[i] = lg[i - 1]; if ((1 << lg[i] + 1) < i) { lg[i]++; } } } int findMAX(int l, int r) { int log = lg[r - l + 1]; return std::max(sparse[log][l], sparse[log][r - (1 << log) + 1]); } }; int a[MAXN]; int b[MAXN]; int c[MAXN]; int d[MAXN]; int h[MAXN]; Sparse sparse; std::stack <int> st; void init(int N, std::vector <int> H) { n = N; for (int i = 1 ; i <= n ; ++i) { h[i] = H[i - 1]; } sparse.build(h); st.push(0); for (int i = 1 ; i <= n ; ++i) { while (h[st.top()] > h[i]) { st.pop(); } a[i] = st.top(); st.push(i); } while (!st.empty()) { st.pop(); } st.push(n + 1); for (int i = n ; i >= 1 ; --i) { while (h[st.top()] > h[i]) { st.pop(); } c[i] = st.top(); st.push(i); } for (int i = 1 ; i <= n ; ++i) { if (a[i] == i - 1) { b[i] = 0; } else { b[i] = sparse.findMAX(a[i] + 1, i - 1) - h[i]; } if (c[i] == i + 1) { d[i] = 0; } else { d[i] = sparse.findMAX(i + 1, c[i] - 1) - h[i]; } } } int max_towers(int L, int R, int D) { L++; R++; int ans = 0; for (int i = L ; i <= R ; ++i) { if ((a[i] < L || b[i] >= D) && (c[i] > R || d[i] >= D)) { ans++; } } return ans; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1375 ms | 5840 KB | Output is correct |
2 | Execution timed out | 4048 ms | 9952 KB | Time limit exceeded |
3 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 336 KB | Output is correct |
2 | Correct | 1 ms | 464 KB | Output is correct |
3 | Correct | 1 ms | 464 KB | Output is correct |
4 | Correct | 2 ms | 464 KB | Output is correct |
5 | Correct | 2 ms | 464 KB | Output is correct |
6 | Correct | 1 ms | 464 KB | Output is correct |
7 | Correct | 1 ms | 468 KB | Output is correct |
8 | Correct | 1 ms | 472 KB | Output is correct |
9 | Correct | 1 ms | 472 KB | Output is correct |
10 | Correct | 1 ms | 464 KB | Output is correct |
11 | Correct | 1 ms | 464 KB | Output is correct |
12 | Correct | 1 ms | 336 KB | Output is correct |
13 | Correct | 1 ms | 464 KB | Output is correct |
14 | Correct | 1 ms | 464 KB | Output is correct |
15 | Correct | 1 ms | 464 KB | Output is correct |
16 | Correct | 1 ms | 464 KB | Output is correct |
17 | Correct | 2 ms | 468 KB | Output is correct |
18 | Correct | 1 ms | 464 KB | Output is correct |
19 | Correct | 1 ms | 464 KB | Output is correct |
20 | Correct | 1 ms | 464 KB | Output is correct |
21 | Correct | 1 ms | 464 KB | Output is correct |
22 | Correct | 1 ms | 464 KB | Output is correct |
23 | Correct | 1 ms | 464 KB | Output is correct |
24 | Correct | 1 ms | 464 KB | Output is correct |
25 | Correct | 1 ms | 336 KB | Output is correct |
26 | Correct | 1 ms | 464 KB | Output is correct |
27 | Correct | 1 ms | 472 KB | Output is correct |
28 | Correct | 1 ms | 464 KB | Output is correct |
29 | Correct | 1 ms | 464 KB | Output is correct |
30 | Correct | 1 ms | 468 KB | Output is correct |
31 | Correct | 1 ms | 468 KB | Output is correct |
32 | Correct | 1 ms | 468 KB | Output is correct |
33 | Correct | 1 ms | 464 KB | Output is correct |
34 | Correct | 1 ms | 464 KB | Output is correct |
35 | Correct | 1 ms | 464 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 336 KB | Output is correct |
2 | Correct | 1 ms | 464 KB | Output is correct |
3 | Correct | 1 ms | 464 KB | Output is correct |
4 | Correct | 2 ms | 464 KB | Output is correct |
5 | Correct | 2 ms | 464 KB | Output is correct |
6 | Correct | 1 ms | 464 KB | Output is correct |
7 | Correct | 1 ms | 468 KB | Output is correct |
8 | Correct | 1 ms | 472 KB | Output is correct |
9 | Correct | 1 ms | 472 KB | Output is correct |
10 | Correct | 1 ms | 464 KB | Output is correct |
11 | Correct | 1 ms | 464 KB | Output is correct |
12 | Correct | 1 ms | 336 KB | Output is correct |
13 | Correct | 1 ms | 464 KB | Output is correct |
14 | Correct | 1 ms | 464 KB | Output is correct |
15 | Correct | 1 ms | 464 KB | Output is correct |
16 | Correct | 1 ms | 464 KB | Output is correct |
17 | Correct | 2 ms | 468 KB | Output is correct |
18 | Correct | 1 ms | 464 KB | Output is correct |
19 | Correct | 1 ms | 464 KB | Output is correct |
20 | Correct | 1 ms | 464 KB | Output is correct |
21 | Correct | 1 ms | 464 KB | Output is correct |
22 | Correct | 1 ms | 464 KB | Output is correct |
23 | Correct | 1 ms | 464 KB | Output is correct |
24 | Correct | 1 ms | 464 KB | Output is correct |
25 | Correct | 1 ms | 336 KB | Output is correct |
26 | Correct | 1 ms | 464 KB | Output is correct |
27 | Correct | 1 ms | 472 KB | Output is correct |
28 | Correct | 1 ms | 464 KB | Output is correct |
29 | Correct | 1 ms | 464 KB | Output is correct |
30 | Correct | 1 ms | 468 KB | Output is correct |
31 | Correct | 1 ms | 468 KB | Output is correct |
32 | Correct | 1 ms | 468 KB | Output is correct |
33 | Correct | 1 ms | 464 KB | Output is correct |
34 | Correct | 1 ms | 464 KB | Output is correct |
35 | Correct | 1 ms | 464 KB | Output is correct |
36 | Correct | 20 ms | 6176 KB | Output is correct |
37 | Correct | 28 ms | 9532 KB | Output is correct |
38 | Correct | 21 ms | 9544 KB | Output is correct |
39 | Correct | 20 ms | 9496 KB | Output is correct |
40 | Correct | 28 ms | 9504 KB | Output is correct |
41 | Correct | 20 ms | 9524 KB | Output is correct |
42 | Correct | 19 ms | 9512 KB | Output is correct |
43 | Correct | 18 ms | 9928 KB | Output is correct |
44 | Correct | 19 ms | 9952 KB | Output is correct |
45 | Correct | 19 ms | 9752 KB | Output is correct |
46 | Correct | 19 ms | 9768 KB | Output is correct |
47 | Correct | 28 ms | 9544 KB | Output is correct |
48 | Correct | 26 ms | 9512 KB | Output is correct |
49 | Correct | 19 ms | 9588 KB | Output is correct |
50 | Correct | 26 ms | 9916 KB | Output is correct |
51 | Correct | 17 ms | 9928 KB | Output is correct |
52 | Correct | 28 ms | 9528 KB | Output is correct |
53 | Correct | 34 ms | 9516 KB | Output is correct |
54 | Correct | 28 ms | 9496 KB | Output is correct |
55 | Correct | 18 ms | 10028 KB | Output is correct |
56 | Correct | 18 ms | 9768 KB | Output is correct |
57 | Correct | 21 ms | 9268 KB | Output is correct |
58 | Correct | 30 ms | 9504 KB | Output is correct |
59 | Correct | 21 ms | 9508 KB | Output is correct |
60 | Correct | 19 ms | 9516 KB | Output is correct |
61 | Correct | 19 ms | 9544 KB | Output is correct |
62 | Correct | 22 ms | 9508 KB | Output is correct |
63 | Correct | 28 ms | 9508 KB | Output is correct |
64 | Correct | 18 ms | 10008 KB | Output is correct |
65 | Correct | 21 ms | 9928 KB | Output is correct |
66 | Correct | 25 ms | 9792 KB | Output is correct |
67 | Correct | 19 ms | 9896 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Execution timed out | 4030 ms | 9516 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 3111 ms | 2352 KB | Output is correct |
2 | Execution timed out | 4027 ms | 9588 KB | Time limit exceeded |
3 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 336 KB | Output is correct |
2 | Correct | 1 ms | 464 KB | Output is correct |
3 | Correct | 1 ms | 464 KB | Output is correct |
4 | Correct | 2 ms | 464 KB | Output is correct |
5 | Correct | 2 ms | 464 KB | Output is correct |
6 | Correct | 1 ms | 464 KB | Output is correct |
7 | Correct | 1 ms | 468 KB | Output is correct |
8 | Correct | 1 ms | 472 KB | Output is correct |
9 | Correct | 1 ms | 472 KB | Output is correct |
10 | Correct | 1 ms | 464 KB | Output is correct |
11 | Correct | 1 ms | 464 KB | Output is correct |
12 | Correct | 1 ms | 336 KB | Output is correct |
13 | Correct | 1 ms | 464 KB | Output is correct |
14 | Correct | 1 ms | 464 KB | Output is correct |
15 | Correct | 1 ms | 464 KB | Output is correct |
16 | Correct | 1 ms | 464 KB | Output is correct |
17 | Correct | 2 ms | 468 KB | Output is correct |
18 | Correct | 1 ms | 464 KB | Output is correct |
19 | Correct | 1 ms | 464 KB | Output is correct |
20 | Correct | 1 ms | 464 KB | Output is correct |
21 | Correct | 1 ms | 464 KB | Output is correct |
22 | Correct | 1 ms | 464 KB | Output is correct |
23 | Correct | 1 ms | 464 KB | Output is correct |
24 | Correct | 1 ms | 464 KB | Output is correct |
25 | Correct | 1 ms | 336 KB | Output is correct |
26 | Correct | 1 ms | 464 KB | Output is correct |
27 | Correct | 1 ms | 472 KB | Output is correct |
28 | Correct | 1 ms | 464 KB | Output is correct |
29 | Correct | 1 ms | 464 KB | Output is correct |
30 | Correct | 1 ms | 468 KB | Output is correct |
31 | Correct | 1 ms | 468 KB | Output is correct |
32 | Correct | 1 ms | 468 KB | Output is correct |
33 | Correct | 1 ms | 464 KB | Output is correct |
34 | Correct | 1 ms | 464 KB | Output is correct |
35 | Correct | 1 ms | 464 KB | Output is correct |
36 | Correct | 20 ms | 6176 KB | Output is correct |
37 | Correct | 28 ms | 9532 KB | Output is correct |
38 | Correct | 21 ms | 9544 KB | Output is correct |
39 | Correct | 20 ms | 9496 KB | Output is correct |
40 | Correct | 28 ms | 9504 KB | Output is correct |
41 | Correct | 20 ms | 9524 KB | Output is correct |
42 | Correct | 19 ms | 9512 KB | Output is correct |
43 | Correct | 18 ms | 9928 KB | Output is correct |
44 | Correct | 19 ms | 9952 KB | Output is correct |
45 | Correct | 19 ms | 9752 KB | Output is correct |
46 | Correct | 19 ms | 9768 KB | Output is correct |
47 | Correct | 28 ms | 9544 KB | Output is correct |
48 | Correct | 26 ms | 9512 KB | Output is correct |
49 | Correct | 19 ms | 9588 KB | Output is correct |
50 | Correct | 26 ms | 9916 KB | Output is correct |
51 | Correct | 17 ms | 9928 KB | Output is correct |
52 | Correct | 28 ms | 9528 KB | Output is correct |
53 | Correct | 34 ms | 9516 KB | Output is correct |
54 | Correct | 28 ms | 9496 KB | Output is correct |
55 | Correct | 18 ms | 10028 KB | Output is correct |
56 | Correct | 18 ms | 9768 KB | Output is correct |
57 | Correct | 21 ms | 9268 KB | Output is correct |
58 | Correct | 30 ms | 9504 KB | Output is correct |
59 | Correct | 21 ms | 9508 KB | Output is correct |
60 | Correct | 19 ms | 9516 KB | Output is correct |
61 | Correct | 19 ms | 9544 KB | Output is correct |
62 | Correct | 22 ms | 9508 KB | Output is correct |
63 | Correct | 28 ms | 9508 KB | Output is correct |
64 | Correct | 18 ms | 10008 KB | Output is correct |
65 | Correct | 21 ms | 9928 KB | Output is correct |
66 | Correct | 25 ms | 9792 KB | Output is correct |
67 | Correct | 19 ms | 9896 KB | Output is correct |
68 | Execution timed out | 4030 ms | 9516 KB | Time limit exceeded |
69 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1375 ms | 5840 KB | Output is correct |
2 | Execution timed out | 4048 ms | 9952 KB | Time limit exceeded |
3 | Halted | 0 ms | 0 KB | - |