#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int nx=4e5+5, lx=8, kx=25;
ll N, pw[20];
vector<ll> S(nx), P(nx), W(nx), L(nx);
struct edge
{
ll out, cost, t;
edge(ll out=0, ll cost=0, ll t=0): out(out), cost(cost), t(t){}
} dp[lx][nx][kx];
void init(int n, std::vector<int> s, std::vector<int> p, std::vector<int> w, std::vector<int> l) {
N=n;
pw[0]=1;
for (int i=1; i<20; i++) pw[i]=pw[i-1]*8;
for (int i=0; i<n; i++) S[i]=s[i], P[i]=p[i], W[i]=w[i], L[i]=l[i];
W[n]=L[n]=n;
for (int i=0; i<lx; i++)
{
for (int u=0; u<=n; u++)
{
if (s[u]<=pw[i]) dp[i][u][0]=edge(W[u], S[u], 1e18);
else dp[i][u][0]=edge(L[u], P[u], S[u]);
}
for (int j=1; j<kx; j++)
{
for (int u=0; u<=n; u++)
{
int v=dp[i][u][j-1].out;
ll out=dp[i][v][j-1].out;
ll cost=dp[i][u][j-1].cost+dp[i][v][j-1].cost;
ll t=min(dp[i][u][j-1].t, dp[i][v][j-1].t-dp[i][u][j-1].cost);
dp[i][u][j]=edge(out, cost, t);
}
}
}
}
long long simulate(int x, int z) {
ll cur=z, st=0;
while (x!=N)
{
//cout<<"debug "<<x<<' '<<cur<<' '<<st<<'\n';
while (st+1<lx&&pw[st+1]<=cur) st++;
for (int i=kx-1; i>=0; i--) if (dp[st][x][i].t>cur) cur+=dp[st][x][i].cost, x=dp[st][x][i].out; //cout<<"here "<<i<<' '<<cur<<' '<<x<<'\n';
//cout<<"after "<<x<<' '<<cur<<' '<<st<<'\n';
if (cur>=S[x]) cur+=S[x], x=W[x];
else cur+=P[x], x=L[x];
}
return cur;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
881 ms |
1891656 KB |
Output is correct |
2 |
Correct |
627 ms |
1891528 KB |
Output is correct |
3 |
Correct |
608 ms |
1891500 KB |
Output is correct |
4 |
Correct |
737 ms |
1894264 KB |
Output is correct |
5 |
Correct |
598 ms |
1891584 KB |
Output is correct |
6 |
Correct |
678 ms |
1893896 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
606 ms |
1891744 KB |
Output is correct |
2 |
Correct |
2426 ms |
1905460 KB |
Output is correct |
3 |
Correct |
2186 ms |
1911868 KB |
Output is correct |
4 |
Correct |
2154 ms |
1913524 KB |
Output is correct |
5 |
Correct |
2139 ms |
1913408 KB |
Output is correct |
6 |
Correct |
2318 ms |
1910960 KB |
Output is correct |
7 |
Correct |
2169 ms |
1905984 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
603 ms |
1891668 KB |
Output is correct |
2 |
Correct |
735 ms |
1894008 KB |
Output is correct |
3 |
Execution timed out |
7143 ms |
1893808 KB |
Time limit exceeded |
4 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
603 ms |
1891668 KB |
Output is correct |
2 |
Correct |
735 ms |
1894008 KB |
Output is correct |
3 |
Execution timed out |
7143 ms |
1893808 KB |
Time limit exceeded |
4 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
603 ms |
1891668 KB |
Output is correct |
2 |
Correct |
735 ms |
1894008 KB |
Output is correct |
3 |
Execution timed out |
7143 ms |
1893808 KB |
Time limit exceeded |
4 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
606 ms |
1891744 KB |
Output is correct |
2 |
Correct |
2426 ms |
1905460 KB |
Output is correct |
3 |
Correct |
2186 ms |
1911868 KB |
Output is correct |
4 |
Correct |
2154 ms |
1913524 KB |
Output is correct |
5 |
Correct |
2139 ms |
1913408 KB |
Output is correct |
6 |
Correct |
2318 ms |
1910960 KB |
Output is correct |
7 |
Correct |
2169 ms |
1905984 KB |
Output is correct |
8 |
Correct |
603 ms |
1891668 KB |
Output is correct |
9 |
Correct |
735 ms |
1894008 KB |
Output is correct |
10 |
Execution timed out |
7143 ms |
1893808 KB |
Time limit exceeded |
11 |
Halted |
0 ms |
0 KB |
- |