#include "dungeons.h"
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int n;
vector<int> p, l;
vector<vector<vector<ll>>> j;
void init(int n, vector<int> s, vector<int> p, vector<int> w, vector<int> l){
::n = n;
::p = p;
::l = l;
j.assign(n+1, vector<vector<ll>>(20, vector<ll>(3)));
j[n][0] = {n, 0, 0};
for (int i=0; i<n; i++) j[i][0] = {w[i], s[i], s[i]};
for (int k=1; k<20; k++){
for (int i=0; i<=n; i++) j[i][k] = {j[j[i][k-1][0]][k-1][0], j[i][k-1][1]+j[j[i][k-1][0]][k-1][1], max(j[i][k-1][2], j[j[i][k-1][0]][k-1][2]-j[i][k-1][1])};
}
return;
}
ll simulate(int x, int iz){
ll z = iz;
while (x != n){
for (int k=19; k>=0; k--){
if (z >= j[x][k][2]){
z += j[x][k][1];
x = j[x][k][0];
}
}
if (x != n){
z += p[x];
x = l[x];
}
}
return z;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |