Submission #799934

#TimeUsernameProblemLanguageResultExecution timeMemory
799934boris_mihovDungeons Game (IOI21_dungeons)C++17
11 / 100
7100 ms26664 KiB
#include "dungeons.h"
#include <algorithm>
#include <iostream>
#include <numeric>
#include <cassert>
#include <vector>

typedef long long llong;
const int MAXN = 400000 + 10;
const int INF  = 1e9;

int n;
int win[MAXN];
int lose[MAXN];
int loseUPD[MAXN];
int strenght[MAXN];

void init(int N, std::vector<int> s, std::vector<int> p, std::vector<int> w, std::vector<int> l) 
{
    n = N;
    for (int i = 1 ; i <= n ; ++i)
    {
        win[i] = w[i - 1] + 1;
        lose[i] = l[i - 1] + 1;
        strenght[i] = s[i - 1];
        loseUPD[i] = p[i - 1];
    }
}

llong simulate(int x, int z) 
{
    x++;
    llong s = z;
    while (x <= n)
    {
        if (s >= strenght[x])
        {
            s += strenght[x];
            x = win[x];
        } else
        {
            s += loseUPD[x];
            x = lose[x];
        }
    }

	return s;
}

#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...