Submission #438986

# Submission time Handle Problem Language Result Execution time Memory
438986 2021-06-29T03:03:07 Z jlallas384 Dungeons Game (IOI21_dungeons) C++17
24 / 100
7000 ms 423688 KB
#include <bits/stdc++.h>
#include "dungeons.h"
using namespace std;
using ll = long long;
vector<vector<pair<int,ll>>> blw,bll;
int n;
bool st3 = true;
vector<vector<pair<int,ll>>> build(vector<int> nxt,vector<int> add){
    vector<vector<pair<int,ll>>> bl(n + 1,vector<pair<int,ll>>(30));
    for(int i = 0; i < n; i++){
        bl[i][0] = {nxt[i],add[i]};
    }
    bl[n][0].first = n;
    for(int j = 1; j < 30; j++){
        for(int i = 0; i <= n; i++){
            bl[i][j].first = bl[bl[i][j - 1].first][j - 1].first;
            bl[i][j].second = bl[i][j - 1].second + bl[bl[i][j - 1].first][j - 1].second;
        }
    }
    return bl;
}

void init(int _n, vector<int> s, vector<int> p, vector<int> w, vector<int> l){
    n = _n;
    blw = build(w,s);
    bll = build(l,p);
    for(int i = 0; i < n; i++){
        st3 &= s[i] == s[0];
    }
}

long long simulate(int x, int z){
    ll res = z;
    if(st3){
        for(int i = 29; i >= 0; i--){
            if(res + bll[x][i].second < blw[0][0].second){
                res += bll[x][i].second;
                x = bll[x][i].first;
            }
        }
        if(res < blw[0][0].second){
            res += bll[x][0].second;
            x = bll[x][0].first;
        }
        for(int i = 29; i >= 0; i--){
            if(blw[x][i].first != n){
                res += blw[x][i].second;
                x = blw[x][i].first;
            }
        }
        return res + blw[x][0].second;
    }
    while(x != n){
        if(res < blw[x][0].second){
            res += bll[x][0].second;
            x = bll[x][0].first;
        }else{
            res += blw[x][0].second;
            x = blw[x][0].first;
        }
    }
    return res;
}

# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 3 ms 2380 KB Output is correct
4 Correct 103 ms 53012 KB Output is correct
5 Correct 4 ms 2380 KB Output is correct
6 Correct 106 ms 53040 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 1356 KB Output is correct
2 Execution timed out 7136 ms 423688 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 1344 KB Output is correct
2 Correct 175 ms 53824 KB Output is correct
3 Correct 202 ms 53832 KB Output is correct
4 Correct 175 ms 53816 KB Output is correct
5 Correct 188 ms 53816 KB Output is correct
6 Correct 152 ms 53816 KB Output is correct
7 Correct 158 ms 53812 KB Output is correct
8 Correct 190 ms 53908 KB Output is correct
9 Correct 171 ms 53820 KB Output is correct
10 Correct 190 ms 53908 KB Output is correct
11 Correct 152 ms 53824 KB Output is correct
12 Correct 312 ms 53820 KB Output is correct
13 Correct 266 ms 53804 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 1344 KB Output is correct
2 Correct 175 ms 53824 KB Output is correct
3 Correct 202 ms 53832 KB Output is correct
4 Correct 175 ms 53816 KB Output is correct
5 Correct 188 ms 53816 KB Output is correct
6 Correct 152 ms 53816 KB Output is correct
7 Correct 158 ms 53812 KB Output is correct
8 Correct 190 ms 53908 KB Output is correct
9 Correct 171 ms 53820 KB Output is correct
10 Correct 190 ms 53908 KB Output is correct
11 Correct 152 ms 53824 KB Output is correct
12 Correct 312 ms 53820 KB Output is correct
13 Correct 266 ms 53804 KB Output is correct
14 Correct 3 ms 1356 KB Output is correct
15 Correct 288 ms 55360 KB Output is correct
16 Correct 178 ms 55492 KB Output is correct
17 Execution timed out 7051 ms 54960 KB Time limit exceeded
18 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 1344 KB Output is correct
2 Correct 175 ms 53824 KB Output is correct
3 Correct 202 ms 53832 KB Output is correct
4 Correct 175 ms 53816 KB Output is correct
5 Correct 188 ms 53816 KB Output is correct
6 Correct 152 ms 53816 KB Output is correct
7 Correct 158 ms 53812 KB Output is correct
8 Correct 190 ms 53908 KB Output is correct
9 Correct 171 ms 53820 KB Output is correct
10 Correct 190 ms 53908 KB Output is correct
11 Correct 152 ms 53824 KB Output is correct
12 Correct 312 ms 53820 KB Output is correct
13 Correct 266 ms 53804 KB Output is correct
14 Correct 3 ms 1356 KB Output is correct
15 Correct 288 ms 55360 KB Output is correct
16 Correct 178 ms 55492 KB Output is correct
17 Execution timed out 7051 ms 54960 KB Time limit exceeded
18 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 1356 KB Output is correct
2 Execution timed out 7136 ms 423688 KB Time limit exceeded
3 Halted 0 ms 0 KB -