# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
1111607 |
2024-11-12T09:58:49 Z |
hmm789 |
Fire (BOI24_fire) |
C++14 |
|
2000 ms |
311876 KB |
#include <bits/stdc++.h>
using namespace std;
#define int long long
struct node {
int s, e, m, v, lz;
node *l, *r;
node(int _s, int _e) {
s = _s, e = _e, m = (s+e)/2, v = 0, lz = -1;
if(s != e) {
l = new node(s, m);
r = new node(m+1, e);
}
}
void prop() {
if(lz == -1) return;
v = lz;
if(s != e) {
l->lz = lz;
r->lz = lz;
}
lz = -1;
}
void update(int x, int y, int val) {
prop();
if(x <= s && e <= y) {lz = val; return;}
else if(x > m) r->update(x, y, val);
else if(y <= m) l->update(x, y, val);
else l->update(x, y, val), r->update(x, y, val);
l->prop(); r->prop();
v = max(l->v, r->v);
}
int get(int x) {
prop();
if(s == e) return v;
else if(x > m) return r->get(x);
else return l->get(x);
}
} *root, *root2;
vector<int> adj[800000];
int p[800000][20], depth[800000];
bool v[800000];
void dfs(int x, int pa, int d) {
v[x] = 1;
depth[x] = d;
p[x][0] = pa;
for(int i = 1; i < 20; i++) {
if(p[x][i-1] == -1) break;
p[x][i] = p[p[x][i-1]][i-1];
}
for(int i : adj[x]) if(!v[i]) dfs(i, x, d+1);
}
int getp(int x, int k) {
for(int i = 0; i < 20; i++) {
if(k&(1<<i)) x = p[x][i];
}
return x;
}
int32_t main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int n, m, x, y;
cin >> n >> m;
n *= 2;
pair<int, int> a[n];
vector<int> dis, dis2, act;
for(int i = 0; i < n; i++) {
if(i < n/2) {
cin >> x >> y;
if(y < x) y = y+m;
a[i] = {y, x};
dis.push_back(x);
dis.push_back(y);
} else {
a[i].first = a[i-n/2].first+m;
a[i].second = a[i-n/2].second+m;
dis.push_back(a[i].first);
dis.push_back(a[i].second);
}
}
sort(dis.begin(), dis.end());
dis.erase(unique(dis.begin(), dis.end()), dis.end());
for(int i : dis) act.push_back(i);
root = new node(0, dis.size());
for(int i = 0; i < n; i++) {
a[i].first = lower_bound(dis.begin(), dis.end(), a[i].first)-dis.begin();
a[i].second = lower_bound(dis.begin(), dis.end(), a[i].second)-dis.begin();
}
sort(a, a+n);
for(int i = 0; i < n; i++) {
root->update(a[i].second, a[i].first, a[i].first);
}
int par[dis.size()];
for(int i = 0; i < dis.size(); i++) {
if(root->get(i) != i) adj[root->get(i)].push_back(i);
par[i] = root->get(i);
}
memset(p, -1, sizeof(p));
for(int i = dis.size()-1; i >= 0; i--) if(!v[i]) {
dfs(i, -1, 0);
}
int l = 0, r = n+1, md;
while(l < r) {
md = (l+r)/2;
bool ok = false;
for(int i = 0; i < dis.size()-1; i++) {
if(act[getp(i, min(md, depth[i]))]-act[i] >= m) ok = true;
}
if(ok) r = md;
else l = md+1;
}
if(l == n+1) cout << -1 << '\n';
else cout << l << '\n';
}
Compilation message
Main.cpp: In function 'int32_t main()':
Main.cpp:100:19: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
100 | for(int i = 0; i < dis.size(); i++) {
| ~~^~~~~~~~~~~~
Main.cpp:112:20: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
112 | for(int i = 0; i < dis.size()-1; i++) {
| ~~^~~~~~~~~~~~~~
Main.cpp:99:6: warning: variable 'par' set but not used [-Wunused-but-set-variable]
99 | int par[dis.size()];
| ^~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
21 ms |
147024 KB |
Output is correct |
2 |
Correct |
21 ms |
147024 KB |
Output is correct |
3 |
Correct |
21 ms |
147280 KB |
Output is correct |
4 |
Correct |
20 ms |
147024 KB |
Output is correct |
5 |
Correct |
21 ms |
147064 KB |
Output is correct |
6 |
Correct |
20 ms |
147036 KB |
Output is correct |
7 |
Correct |
22 ms |
147104 KB |
Output is correct |
8 |
Correct |
24 ms |
147280 KB |
Output is correct |
9 |
Correct |
20 ms |
147024 KB |
Output is correct |
10 |
Correct |
20 ms |
147024 KB |
Output is correct |
11 |
Correct |
20 ms |
147280 KB |
Output is correct |
12 |
Correct |
20 ms |
147280 KB |
Output is correct |
13 |
Correct |
20 ms |
145232 KB |
Output is correct |
14 |
Correct |
19 ms |
147196 KB |
Output is correct |
15 |
Correct |
19 ms |
147176 KB |
Output is correct |
16 |
Correct |
20 ms |
147296 KB |
Output is correct |
17 |
Correct |
21 ms |
147280 KB |
Output is correct |
18 |
Correct |
20 ms |
147280 KB |
Output is correct |
19 |
Correct |
28 ms |
145232 KB |
Output is correct |
20 |
Correct |
31 ms |
145232 KB |
Output is correct |
21 |
Correct |
35 ms |
144968 KB |
Output is correct |
22 |
Correct |
26 ms |
145216 KB |
Output is correct |
23 |
Correct |
32 ms |
145072 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
21 ms |
147024 KB |
Output is correct |
2 |
Correct |
21 ms |
147024 KB |
Output is correct |
3 |
Correct |
21 ms |
147280 KB |
Output is correct |
4 |
Correct |
20 ms |
147024 KB |
Output is correct |
5 |
Correct |
21 ms |
147064 KB |
Output is correct |
6 |
Correct |
20 ms |
147036 KB |
Output is correct |
7 |
Correct |
22 ms |
147104 KB |
Output is correct |
8 |
Correct |
24 ms |
147280 KB |
Output is correct |
9 |
Correct |
20 ms |
147024 KB |
Output is correct |
10 |
Correct |
20 ms |
147024 KB |
Output is correct |
11 |
Correct |
20 ms |
147280 KB |
Output is correct |
12 |
Correct |
20 ms |
147280 KB |
Output is correct |
13 |
Correct |
20 ms |
145232 KB |
Output is correct |
14 |
Correct |
19 ms |
147196 KB |
Output is correct |
15 |
Correct |
19 ms |
147176 KB |
Output is correct |
16 |
Correct |
20 ms |
147296 KB |
Output is correct |
17 |
Correct |
21 ms |
147280 KB |
Output is correct |
18 |
Correct |
20 ms |
147280 KB |
Output is correct |
19 |
Correct |
28 ms |
145232 KB |
Output is correct |
20 |
Correct |
31 ms |
145232 KB |
Output is correct |
21 |
Correct |
35 ms |
144968 KB |
Output is correct |
22 |
Correct |
26 ms |
145216 KB |
Output is correct |
23 |
Correct |
32 ms |
145072 KB |
Output is correct |
24 |
Correct |
31 ms |
145232 KB |
Output is correct |
25 |
Correct |
31 ms |
145384 KB |
Output is correct |
26 |
Correct |
31 ms |
145232 KB |
Output is correct |
27 |
Correct |
52 ms |
145128 KB |
Output is correct |
28 |
Correct |
44 ms |
145348 KB |
Output is correct |
29 |
Correct |
49 ms |
145224 KB |
Output is correct |
30 |
Correct |
66 ms |
145224 KB |
Output is correct |
31 |
Correct |
65 ms |
145092 KB |
Output is correct |
32 |
Correct |
68 ms |
145224 KB |
Output is correct |
33 |
Correct |
68 ms |
145144 KB |
Output is correct |
34 |
Correct |
41 ms |
145164 KB |
Output is correct |
35 |
Correct |
35 ms |
145312 KB |
Output is correct |
36 |
Correct |
33 ms |
145232 KB |
Output is correct |
37 |
Correct |
35 ms |
145232 KB |
Output is correct |
38 |
Correct |
44 ms |
145228 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
21 ms |
147024 KB |
Output is correct |
2 |
Correct |
21 ms |
147024 KB |
Output is correct |
3 |
Correct |
21 ms |
147280 KB |
Output is correct |
4 |
Correct |
20 ms |
147024 KB |
Output is correct |
5 |
Correct |
21 ms |
147064 KB |
Output is correct |
6 |
Correct |
20 ms |
147036 KB |
Output is correct |
7 |
Correct |
22 ms |
147104 KB |
Output is correct |
8 |
Correct |
24 ms |
147280 KB |
Output is correct |
9 |
Correct |
20 ms |
147024 KB |
Output is correct |
10 |
Correct |
20 ms |
147024 KB |
Output is correct |
11 |
Correct |
20 ms |
147280 KB |
Output is correct |
12 |
Correct |
20 ms |
147280 KB |
Output is correct |
13 |
Correct |
20 ms |
145232 KB |
Output is correct |
14 |
Correct |
19 ms |
147196 KB |
Output is correct |
15 |
Correct |
19 ms |
147176 KB |
Output is correct |
16 |
Correct |
20 ms |
147296 KB |
Output is correct |
17 |
Correct |
21 ms |
147280 KB |
Output is correct |
18 |
Correct |
20 ms |
147280 KB |
Output is correct |
19 |
Correct |
28 ms |
145232 KB |
Output is correct |
20 |
Correct |
31 ms |
145232 KB |
Output is correct |
21 |
Correct |
35 ms |
144968 KB |
Output is correct |
22 |
Correct |
26 ms |
145216 KB |
Output is correct |
23 |
Correct |
32 ms |
145072 KB |
Output is correct |
24 |
Correct |
31 ms |
145232 KB |
Output is correct |
25 |
Correct |
31 ms |
145384 KB |
Output is correct |
26 |
Correct |
31 ms |
145232 KB |
Output is correct |
27 |
Correct |
52 ms |
145128 KB |
Output is correct |
28 |
Correct |
44 ms |
145348 KB |
Output is correct |
29 |
Correct |
49 ms |
145224 KB |
Output is correct |
30 |
Correct |
66 ms |
145224 KB |
Output is correct |
31 |
Correct |
65 ms |
145092 KB |
Output is correct |
32 |
Correct |
68 ms |
145224 KB |
Output is correct |
33 |
Correct |
68 ms |
145144 KB |
Output is correct |
34 |
Correct |
41 ms |
145164 KB |
Output is correct |
35 |
Correct |
35 ms |
145312 KB |
Output is correct |
36 |
Correct |
33 ms |
145232 KB |
Output is correct |
37 |
Correct |
35 ms |
145232 KB |
Output is correct |
38 |
Correct |
44 ms |
145228 KB |
Output is correct |
39 |
Correct |
53 ms |
148552 KB |
Output is correct |
40 |
Correct |
70 ms |
149020 KB |
Output is correct |
41 |
Correct |
53 ms |
148692 KB |
Output is correct |
42 |
Correct |
53 ms |
147604 KB |
Output is correct |
43 |
Correct |
48 ms |
146744 KB |
Output is correct |
44 |
Correct |
49 ms |
147784 KB |
Output is correct |
45 |
Correct |
57 ms |
147712 KB |
Output is correct |
46 |
Correct |
56 ms |
147636 KB |
Output is correct |
47 |
Correct |
65 ms |
148552 KB |
Output is correct |
48 |
Correct |
55 ms |
148612 KB |
Output is correct |
49 |
Correct |
60 ms |
148800 KB |
Output is correct |
50 |
Correct |
46 ms |
147404 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
35 ms |
145144 KB |
Output is correct |
2 |
Correct |
45 ms |
144968 KB |
Output is correct |
3 |
Correct |
34 ms |
145012 KB |
Output is correct |
4 |
Correct |
37 ms |
144996 KB |
Output is correct |
5 |
Correct |
42 ms |
144972 KB |
Output is correct |
6 |
Correct |
32 ms |
145224 KB |
Output is correct |
7 |
Correct |
41 ms |
144968 KB |
Output is correct |
8 |
Correct |
38 ms |
145080 KB |
Output is correct |
9 |
Correct |
37 ms |
145172 KB |
Output is correct |
10 |
Correct |
47 ms |
145356 KB |
Output is correct |
11 |
Correct |
43 ms |
145228 KB |
Output is correct |
12 |
Correct |
45 ms |
145224 KB |
Output is correct |
13 |
Correct |
42 ms |
145240 KB |
Output is correct |
14 |
Correct |
31 ms |
145220 KB |
Output is correct |
15 |
Correct |
40 ms |
150516 KB |
Output is correct |
16 |
Correct |
35 ms |
147668 KB |
Output is correct |
17 |
Correct |
38 ms |
146700 KB |
Output is correct |
18 |
Correct |
35 ms |
147652 KB |
Output is correct |
19 |
Correct |
36 ms |
148676 KB |
Output is correct |
20 |
Correct |
109 ms |
159664 KB |
Output is correct |
21 |
Correct |
1452 ms |
290348 KB |
Output is correct |
22 |
Correct |
1447 ms |
290088 KB |
Output is correct |
23 |
Correct |
1036 ms |
251048 KB |
Output is correct |
24 |
Correct |
1830 ms |
301508 KB |
Output is correct |
25 |
Correct |
554 ms |
215080 KB |
Output is correct |
26 |
Correct |
941 ms |
233908 KB |
Output is correct |
27 |
Correct |
1014 ms |
251212 KB |
Output is correct |
28 |
Correct |
1289 ms |
285784 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
20 ms |
147024 KB |
Output is correct |
2 |
Correct |
21 ms |
147036 KB |
Output is correct |
3 |
Correct |
20 ms |
147024 KB |
Output is correct |
4 |
Correct |
20 ms |
147124 KB |
Output is correct |
5 |
Correct |
20 ms |
147280 KB |
Output is correct |
6 |
Correct |
21 ms |
147280 KB |
Output is correct |
7 |
Correct |
20 ms |
147280 KB |
Output is correct |
8 |
Correct |
21 ms |
145280 KB |
Output is correct |
9 |
Correct |
20 ms |
147280 KB |
Output is correct |
10 |
Correct |
23 ms |
147280 KB |
Output is correct |
11 |
Correct |
20 ms |
147280 KB |
Output is correct |
12 |
Correct |
45 ms |
148860 KB |
Output is correct |
13 |
Correct |
45 ms |
147740 KB |
Output is correct |
14 |
Correct |
39 ms |
147424 KB |
Output is correct |
15 |
Correct |
95 ms |
159664 KB |
Output is correct |
16 |
Correct |
1028 ms |
251056 KB |
Output is correct |
17 |
Correct |
1458 ms |
295476 KB |
Output is correct |
18 |
Correct |
1448 ms |
295724 KB |
Output is correct |
19 |
Correct |
1787 ms |
306624 KB |
Output is correct |
20 |
Correct |
943 ms |
235320 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
21 ms |
147024 KB |
Output is correct |
2 |
Correct |
21 ms |
147024 KB |
Output is correct |
3 |
Correct |
21 ms |
147280 KB |
Output is correct |
4 |
Correct |
20 ms |
147024 KB |
Output is correct |
5 |
Correct |
21 ms |
147064 KB |
Output is correct |
6 |
Correct |
20 ms |
147036 KB |
Output is correct |
7 |
Correct |
22 ms |
147104 KB |
Output is correct |
8 |
Correct |
24 ms |
147280 KB |
Output is correct |
9 |
Correct |
20 ms |
147024 KB |
Output is correct |
10 |
Correct |
20 ms |
147024 KB |
Output is correct |
11 |
Correct |
20 ms |
147280 KB |
Output is correct |
12 |
Correct |
20 ms |
147280 KB |
Output is correct |
13 |
Correct |
20 ms |
145232 KB |
Output is correct |
14 |
Correct |
19 ms |
147196 KB |
Output is correct |
15 |
Correct |
19 ms |
147176 KB |
Output is correct |
16 |
Correct |
20 ms |
147296 KB |
Output is correct |
17 |
Correct |
21 ms |
147280 KB |
Output is correct |
18 |
Correct |
20 ms |
147280 KB |
Output is correct |
19 |
Correct |
28 ms |
145232 KB |
Output is correct |
20 |
Correct |
31 ms |
145232 KB |
Output is correct |
21 |
Correct |
35 ms |
144968 KB |
Output is correct |
22 |
Correct |
26 ms |
145216 KB |
Output is correct |
23 |
Correct |
32 ms |
145072 KB |
Output is correct |
24 |
Correct |
31 ms |
145232 KB |
Output is correct |
25 |
Correct |
31 ms |
145384 KB |
Output is correct |
26 |
Correct |
31 ms |
145232 KB |
Output is correct |
27 |
Correct |
52 ms |
145128 KB |
Output is correct |
28 |
Correct |
44 ms |
145348 KB |
Output is correct |
29 |
Correct |
49 ms |
145224 KB |
Output is correct |
30 |
Correct |
66 ms |
145224 KB |
Output is correct |
31 |
Correct |
65 ms |
145092 KB |
Output is correct |
32 |
Correct |
68 ms |
145224 KB |
Output is correct |
33 |
Correct |
68 ms |
145144 KB |
Output is correct |
34 |
Correct |
41 ms |
145164 KB |
Output is correct |
35 |
Correct |
35 ms |
145312 KB |
Output is correct |
36 |
Correct |
33 ms |
145232 KB |
Output is correct |
37 |
Correct |
35 ms |
145232 KB |
Output is correct |
38 |
Correct |
44 ms |
145228 KB |
Output is correct |
39 |
Correct |
53 ms |
148552 KB |
Output is correct |
40 |
Correct |
70 ms |
149020 KB |
Output is correct |
41 |
Correct |
53 ms |
148692 KB |
Output is correct |
42 |
Correct |
53 ms |
147604 KB |
Output is correct |
43 |
Correct |
48 ms |
146744 KB |
Output is correct |
44 |
Correct |
49 ms |
147784 KB |
Output is correct |
45 |
Correct |
57 ms |
147712 KB |
Output is correct |
46 |
Correct |
56 ms |
147636 KB |
Output is correct |
47 |
Correct |
65 ms |
148552 KB |
Output is correct |
48 |
Correct |
55 ms |
148612 KB |
Output is correct |
49 |
Correct |
60 ms |
148800 KB |
Output is correct |
50 |
Correct |
46 ms |
147404 KB |
Output is correct |
51 |
Correct |
35 ms |
145144 KB |
Output is correct |
52 |
Correct |
45 ms |
144968 KB |
Output is correct |
53 |
Correct |
34 ms |
145012 KB |
Output is correct |
54 |
Correct |
37 ms |
144996 KB |
Output is correct |
55 |
Correct |
42 ms |
144972 KB |
Output is correct |
56 |
Correct |
32 ms |
145224 KB |
Output is correct |
57 |
Correct |
41 ms |
144968 KB |
Output is correct |
58 |
Correct |
38 ms |
145080 KB |
Output is correct |
59 |
Correct |
37 ms |
145172 KB |
Output is correct |
60 |
Correct |
47 ms |
145356 KB |
Output is correct |
61 |
Correct |
43 ms |
145228 KB |
Output is correct |
62 |
Correct |
45 ms |
145224 KB |
Output is correct |
63 |
Correct |
42 ms |
145240 KB |
Output is correct |
64 |
Correct |
31 ms |
145220 KB |
Output is correct |
65 |
Correct |
40 ms |
150516 KB |
Output is correct |
66 |
Correct |
35 ms |
147668 KB |
Output is correct |
67 |
Correct |
38 ms |
146700 KB |
Output is correct |
68 |
Correct |
35 ms |
147652 KB |
Output is correct |
69 |
Correct |
36 ms |
148676 KB |
Output is correct |
70 |
Correct |
109 ms |
159664 KB |
Output is correct |
71 |
Correct |
1452 ms |
290348 KB |
Output is correct |
72 |
Correct |
1447 ms |
290088 KB |
Output is correct |
73 |
Correct |
1036 ms |
251048 KB |
Output is correct |
74 |
Correct |
1830 ms |
301508 KB |
Output is correct |
75 |
Correct |
554 ms |
215080 KB |
Output is correct |
76 |
Correct |
941 ms |
233908 KB |
Output is correct |
77 |
Correct |
1014 ms |
251212 KB |
Output is correct |
78 |
Correct |
1289 ms |
285784 KB |
Output is correct |
79 |
Correct |
20 ms |
147024 KB |
Output is correct |
80 |
Correct |
21 ms |
147036 KB |
Output is correct |
81 |
Correct |
20 ms |
147024 KB |
Output is correct |
82 |
Correct |
20 ms |
147124 KB |
Output is correct |
83 |
Correct |
20 ms |
147280 KB |
Output is correct |
84 |
Correct |
21 ms |
147280 KB |
Output is correct |
85 |
Correct |
20 ms |
147280 KB |
Output is correct |
86 |
Correct |
21 ms |
145280 KB |
Output is correct |
87 |
Correct |
20 ms |
147280 KB |
Output is correct |
88 |
Correct |
23 ms |
147280 KB |
Output is correct |
89 |
Correct |
20 ms |
147280 KB |
Output is correct |
90 |
Correct |
45 ms |
148860 KB |
Output is correct |
91 |
Correct |
45 ms |
147740 KB |
Output is correct |
92 |
Correct |
39 ms |
147424 KB |
Output is correct |
93 |
Correct |
95 ms |
159664 KB |
Output is correct |
94 |
Correct |
1028 ms |
251056 KB |
Output is correct |
95 |
Correct |
1458 ms |
295476 KB |
Output is correct |
96 |
Correct |
1448 ms |
295724 KB |
Output is correct |
97 |
Correct |
1787 ms |
306624 KB |
Output is correct |
98 |
Correct |
943 ms |
235320 KB |
Output is correct |
99 |
Correct |
1297 ms |
292912 KB |
Output is correct |
100 |
Correct |
1436 ms |
291624 KB |
Output is correct |
101 |
Execution timed out |
2031 ms |
311876 KB |
Time limit exceeded |
102 |
Halted |
0 ms |
0 KB |
- |