Submission #600977

#TimeUsernameProblemLanguageResultExecution timeMemory
600977Valaki2Dungeons Game (IOI21_dungeons)C++17
11 / 100
7018 ms31804 KiB
#include "dungeons.h"
#include <bits/stdc++.h>
using namespace std;

#define n N
#define s S
#define p P
#define w W
#define l L

#define int long long
#define pb push_back

int n;
vector<int> win_str, lose_str, win_pos, lose_pos;

void solve() {
    //
}

int query(int pos, int strength) {
    while(pos != n) {
        if(strength < win_str[pos]) {
            strength += lose_str[pos];
            pos = lose_pos[pos];
        } else {
            strength += win_str[pos];
            pos = win_pos[pos];
        }
    }
    return strength;
}

#undef n
#undef s
#undef p
#undef w
#undef l
void init(signed n, vector<signed> s, vector<signed> p, vector<signed> w, vector<signed> l) {
	N = n;
	win_str = lose_str = win_pos = lose_pos = (vector<int> (n + 1, 0));
	for(int i = 0; i < n; i++) {
        win_str[i] = s[i];
        lose_str[i] = p[i];
        win_pos[i] = w[i];
        lose_pos[i] = l[i];
	}
	win_str[n] = 0;
	lose_str[n] = 0;
	win_pos[n] = n;
	lose_pos[n] = n;
	solve();
}

int simulate(signed x, signed z) {
	return query(x, z);
}

#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...