# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1224114 | candi_ositos | Dungeons Game (IOI21_dungeons) | C++20 | 0 ms | 0 KiB |
#include "dungeons.h"
#include <bits/stdc++.h>
using namespace std;
int n, q;
vector <int> s, p, w, l, ax, az;
void init(int N, vector <int> S, vector <int> P, vector <int> W, vector <int> L)
{
n=N;
s.resize(N);
p.resize(N);
w.resize(N);
l.resize(N);
for(int i=0; i<n; ++i)
{
s[i]=S[i];
p[i]=P[i];
w[i]=W[i];
l[i]=L[i];
}
return;
}
long long int simulate(int x, long long int z)
{
if(x==n)
{
return z;
}
if(z<s[x])
{
z+=p[x];
return (simulate(l[x], z));
}
z+=s[x];
return (simulate(w[x], z));
}/*
int main() {
static std::vector<long long> answer;
assert(scanf("%d %d", &n, &q) == 2);
s.resize(n);
p.resize(n);
w.resize(n);
l.resize(n);
ax.resize(q);
az.resize(q);
answer.resize(q);
for (int i = 0; i < n; i++) {
assert(scanf("%d", &s[i]) == 1);
}
for (int i = 0; i < n; i++) {
assert(scanf("%d", &p[i]) == 1);
}
for (int i = 0; i < n; i++) {
assert(scanf("%d", &w[i]) == 1);
}
for (int i = 0; i < n; i++) {
assert(scanf("%d", &l[i]) == 1);
}
init(n, s, p, w, l);
for (int i = 0; i < q; i++) {
assert(scanf("%d %d", &ax[i], &az[i]) == 2);
answer[i] = simulate(ax[i], az[i]);
}
fclose(stdin);
for (int i = 0; i < q; i++) {
printf("%lld\n", answer[i]);
}
fclose(stdout);
return 0;
}*/