Submission #1072124

#TimeUsernameProblemLanguageResultExecution timeMemory
1072124Ahmed57Dungeons Game (IOI21_dungeons)C++17
Compilation error
0 ms0 KiB
#include "bits/stdc++.h"
 
using namespace std;
int BL = 80000;
array<long long,3> P[50001][130][16];
long long inf = 1e18 , N;
vector<int> S , PP , W , L;
void init(int n, vector<int> s, vector<int> p, vector<int> w,vector<int> l){
    S = s , PP = p;W = w; L = l;
    int cnt = 0;N = n;
    for(int cst = 0;cst<=1e7;cst+=BL){
        for(int i = 0;i<n;i++){
            if(s[i]>=cst){
                P[i][cnt][0] = {w[i],s[i],-inf};
            }else{
                P[i][cnt][0] = {l[i],p[i],s[i]};
            }
        }
        P[n][cnt][0] = {n,0,inf};
        for(int j = 1;j<16;j++){
            for(int i = 0;i<=n;i++){
                P[i][cnt][j][0] = P[P[i][cnt][j-1][0]][cnt][j-1][0];
                P[i][cnt][j][1] = P[i][cnt][j-1][1]+P[P[i][cnt][j-1][0]][cnt][j-1][1];
                P[i][cnt][j][2] = max(P[i][cnt][j-1][2],P[P[i][cnt][j-1][0]][cnt][j-1][2]-P[i][cnt][j-1][1]);
            }
        }
        cnt++;
    }
}
long long simulate(int x, int z) {
    long long sum = z;
    while(x!=N){
        int nah = sum/BL;
        for(int i = 15;i>=0;i--){
            if(P[x][nah][i][2]>=1e15||(P[x][nah][i][2]<=sum&&P[x][nah][i][2]>=-inf)){

            }else{
                sum+=P[x][nah][i][1];
                x = P[x][nah][i][0];
            }
        }
        if(x==N)break;
        if(sum>=S[x]){
            sum+=S[x];
            x = W[x];
        }else{
            sum+=PP[x];
            x = L[x];
        }
    }
    return sum;
}

Compilation message (stderr)

/tmp/ccYuZa0R.o: in function `main':
grader.cpp:(.text.startup+0x178): relocation truncated to fit: R_X86_64_PC32 against `.bss'
grader.cpp:(.text.startup+0x17f): relocation truncated to fit: R_X86_64_PC32 against `.bss'
grader.cpp:(.text.startup+0x19d): relocation truncated to fit: R_X86_64_PC32 against `.bss'
grader.cpp:(.text.startup+0x1a4): relocation truncated to fit: R_X86_64_PC32 against `.bss'
grader.cpp:(.text.startup+0x1b0): relocation truncated to fit: R_X86_64_PC32 against `.bss'
grader.cpp:(.text.startup+0x1b7): relocation truncated to fit: R_X86_64_PC32 against `.bss'
grader.cpp:(.text.startup+0x1c3): relocation truncated to fit: R_X86_64_PC32 against `.bss'
grader.cpp:(.text.startup+0x1ca): relocation truncated to fit: R_X86_64_PC32 against `.bss'
grader.cpp:(.text.startup+0x1d6): relocation truncated to fit: R_X86_64_PC32 against `.bss'
grader.cpp:(.text.startup+0x1dd): relocation truncated to fit: R_X86_64_PC32 against `.bss'
grader.cpp:(.text.startup+0x1e9): additional relocation overflows omitted from the output
/usr/bin/ld: failed to convert GOTPCREL relocation; relink with --no-relax
collect2: error: ld returned 1 exit status