#include "dungeons.h"
#include "bits/stdc++.h"
using namespace std;
using ll = long long;
const int N = 4e5 + 10, K = 30;
pair<ll, ll> jump_win[N][K], jump_lose[N][K];
ll sum_win[N][K];
ll sum_lose[N][K];
ll finish, S[N], P[N], W[N], L[N];
void init(int n, vector<int> s, vector<int> p, vector<int> w, vector<int> l) {
for(int i = 0; i < n; ++i) {
S[i] = s[i], P[i] = p[i], W[i] = w[i], L[i] = l[i];
}
finish = n;
for(int i = 0; i < N; ++i) {
for(int j = 0; j < K; ++j) {
jump_win[i][j] = {n, 1e17};
jump_lose[i][j] = {n, 0};
}
}
for(int i = 0; i < n; ++i) {
jump_win[i][0] = {w[i], s[i]};
sum_win[i][0] = s[i];
sum_lose[i][0] = p[i];
jump_lose[i][0] = {l[i], s[i]};
}
for(int j = 1; j < K; ++j) {
for(int i = 0; i < n; ++i) {
jump_win[i][j].first = jump_win[jump_win[i][j - 1].first][j - 1].first;
sum_win[i][j] = sum_win[i][j - 1] + sum_win[jump_win[i][j - 1].first][j - 1];
ll need1 = jump_win[i][j - 1].second;
ll need2 = jump_win[jump_win[i][j - 1].first][j - 1].second - sum_win[i][j - 1];
jump_win[i][j].second = max(need1, need2);
jump_lose[i][j].first = jump_lose[jump_lose[i][j - 1].first][j - 1].first;
sum_lose[i][j] = sum_lose[i][j - 1] + sum_lose[jump_lose[i][j - 1].first][j - 1];
need1 = jump_lose[i][j - 1].second;
need2 = jump_lose[jump_lose[i][j - 1].first][j - 1].second - sum_lose[i][j - 1];
jump_lose[i][j].second = min(need1, need2);
}
}
}
long long simulate(int x, int z) {
ll w = z;
while(x < finish) {
for(int j = K - 1; j >= 0; --j) {
if(w >= jump_win[x][j].second) {
w += sum_win[x][j];
x = jump_win[x][j].first;
}
}
if(x == finish) break;
for(int j = K - 1; j >= 0; --j) {
if(w < jump_lose[x][j].second) {
w += sum_lose[x][j];
x = jump_lose[x][j].first;
}
}
}
return w;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
158 ms |
376024 KB |
Output is correct |
2 |
Correct |
265 ms |
376184 KB |
Output is correct |
3 |
Correct |
171 ms |
377024 KB |
Output is correct |
4 |
Correct |
228 ms |
402704 KB |
Output is correct |
5 |
Correct |
158 ms |
377052 KB |
Output is correct |
6 |
Correct |
230 ms |
402632 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
157 ms |
376588 KB |
Output is correct |
2 |
Correct |
855 ms |
589876 KB |
Output is correct |
3 |
Correct |
900 ms |
589840 KB |
Output is correct |
4 |
Correct |
1185 ms |
589752 KB |
Output is correct |
5 |
Correct |
898 ms |
589748 KB |
Output is correct |
6 |
Correct |
922 ms |
589632 KB |
Output is correct |
7 |
Correct |
1008 ms |
589636 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
173 ms |
376572 KB |
Output is correct |
2 |
Correct |
292 ms |
403492 KB |
Output is correct |
3 |
Correct |
285 ms |
403492 KB |
Output is correct |
4 |
Correct |
258 ms |
403612 KB |
Output is correct |
5 |
Correct |
265 ms |
403488 KB |
Output is correct |
6 |
Correct |
266 ms |
403428 KB |
Output is correct |
7 |
Correct |
275 ms |
403376 KB |
Output is correct |
8 |
Correct |
273 ms |
403492 KB |
Output is correct |
9 |
Correct |
267 ms |
403404 KB |
Output is correct |
10 |
Correct |
318 ms |
403488 KB |
Output is correct |
11 |
Correct |
316 ms |
403500 KB |
Output is correct |
12 |
Correct |
436 ms |
403412 KB |
Output is correct |
13 |
Correct |
340 ms |
403532 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
173 ms |
376572 KB |
Output is correct |
2 |
Correct |
292 ms |
403492 KB |
Output is correct |
3 |
Correct |
285 ms |
403492 KB |
Output is correct |
4 |
Correct |
258 ms |
403612 KB |
Output is correct |
5 |
Correct |
265 ms |
403488 KB |
Output is correct |
6 |
Correct |
266 ms |
403428 KB |
Output is correct |
7 |
Correct |
275 ms |
403376 KB |
Output is correct |
8 |
Correct |
273 ms |
403492 KB |
Output is correct |
9 |
Correct |
267 ms |
403404 KB |
Output is correct |
10 |
Correct |
318 ms |
403488 KB |
Output is correct |
11 |
Correct |
316 ms |
403500 KB |
Output is correct |
12 |
Correct |
436 ms |
403412 KB |
Output is correct |
13 |
Correct |
340 ms |
403532 KB |
Output is correct |
14 |
Correct |
172 ms |
376588 KB |
Output is correct |
15 |
Correct |
475 ms |
403496 KB |
Output is correct |
16 |
Correct |
272 ms |
403616 KB |
Output is correct |
17 |
Correct |
292 ms |
403492 KB |
Output is correct |
18 |
Correct |
321 ms |
403476 KB |
Output is correct |
19 |
Correct |
312 ms |
403420 KB |
Output is correct |
20 |
Correct |
287 ms |
403556 KB |
Output is correct |
21 |
Correct |
280 ms |
403484 KB |
Output is correct |
22 |
Execution timed out |
7117 ms |
403496 KB |
Time limit exceeded |
23 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
173 ms |
376572 KB |
Output is correct |
2 |
Correct |
292 ms |
403492 KB |
Output is correct |
3 |
Correct |
285 ms |
403492 KB |
Output is correct |
4 |
Correct |
258 ms |
403612 KB |
Output is correct |
5 |
Correct |
265 ms |
403488 KB |
Output is correct |
6 |
Correct |
266 ms |
403428 KB |
Output is correct |
7 |
Correct |
275 ms |
403376 KB |
Output is correct |
8 |
Correct |
273 ms |
403492 KB |
Output is correct |
9 |
Correct |
267 ms |
403404 KB |
Output is correct |
10 |
Correct |
318 ms |
403488 KB |
Output is correct |
11 |
Correct |
316 ms |
403500 KB |
Output is correct |
12 |
Correct |
436 ms |
403412 KB |
Output is correct |
13 |
Correct |
340 ms |
403532 KB |
Output is correct |
14 |
Correct |
172 ms |
376588 KB |
Output is correct |
15 |
Correct |
475 ms |
403496 KB |
Output is correct |
16 |
Correct |
272 ms |
403616 KB |
Output is correct |
17 |
Correct |
292 ms |
403492 KB |
Output is correct |
18 |
Correct |
321 ms |
403476 KB |
Output is correct |
19 |
Correct |
312 ms |
403420 KB |
Output is correct |
20 |
Correct |
287 ms |
403556 KB |
Output is correct |
21 |
Correct |
280 ms |
403484 KB |
Output is correct |
22 |
Execution timed out |
7117 ms |
403496 KB |
Time limit exceeded |
23 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
157 ms |
376588 KB |
Output is correct |
2 |
Correct |
855 ms |
589876 KB |
Output is correct |
3 |
Correct |
900 ms |
589840 KB |
Output is correct |
4 |
Correct |
1185 ms |
589752 KB |
Output is correct |
5 |
Correct |
898 ms |
589748 KB |
Output is correct |
6 |
Correct |
922 ms |
589632 KB |
Output is correct |
7 |
Correct |
1008 ms |
589636 KB |
Output is correct |
8 |
Correct |
173 ms |
376572 KB |
Output is correct |
9 |
Correct |
292 ms |
403492 KB |
Output is correct |
10 |
Correct |
285 ms |
403492 KB |
Output is correct |
11 |
Correct |
258 ms |
403612 KB |
Output is correct |
12 |
Correct |
265 ms |
403488 KB |
Output is correct |
13 |
Correct |
266 ms |
403428 KB |
Output is correct |
14 |
Correct |
275 ms |
403376 KB |
Output is correct |
15 |
Correct |
273 ms |
403492 KB |
Output is correct |
16 |
Correct |
267 ms |
403404 KB |
Output is correct |
17 |
Correct |
318 ms |
403488 KB |
Output is correct |
18 |
Correct |
316 ms |
403500 KB |
Output is correct |
19 |
Correct |
436 ms |
403412 KB |
Output is correct |
20 |
Correct |
340 ms |
403532 KB |
Output is correct |
21 |
Correct |
172 ms |
376588 KB |
Output is correct |
22 |
Correct |
475 ms |
403496 KB |
Output is correct |
23 |
Correct |
272 ms |
403616 KB |
Output is correct |
24 |
Correct |
292 ms |
403492 KB |
Output is correct |
25 |
Correct |
321 ms |
403476 KB |
Output is correct |
26 |
Correct |
312 ms |
403420 KB |
Output is correct |
27 |
Correct |
287 ms |
403556 KB |
Output is correct |
28 |
Correct |
280 ms |
403484 KB |
Output is correct |
29 |
Execution timed out |
7117 ms |
403496 KB |
Time limit exceeded |
30 |
Halted |
0 ms |
0 KB |
- |