Submission #921262

#TimeUsernameProblemLanguageResultExecution timeMemory
921262byunjaewooDungeons Game (IOI21_dungeons)C++17
Compilation error
0 ms0 KiB
#include "dungeons.h" #include <bits/stdc++.h> using namespace std; using ll=long long; const int Nmax=400010; int N, S[Nmax], P[Nmax], W[Nmax], L[Nmax]; int nxt[25][25][Nmax], mx[25][25][Nmax]; ll sum[25][25][Nmax]; 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=0; i<N; i++) S[i]=S_[i], P[i]=P_[i], W[i]=W_[i], L[i]=L_[i]; for(int i=0; i<25; i++) { for(int j=0; j<N; j++) { if(S[j]>=(1<<(i+1))) nxt[i][0][j]=L[j], sum[i][0][j]=P[j], mx[i][0][j]=(1<<(i+1))-1-P[j]; else if(S[j]<=(1<<i)) nxt[i][0][j]=W[j], sum[i][0][j]=S[j], mx[i][0][j]=(1<<(i+1))-1-S[j]; else nxt[i][0][j]=L[j], sum[i][0][j]=P[j], mx[i][0][j]=min(S[j]-1, (1<<(i+1))-1-P[j]); } nxt[i][0][N]=N, sum[i][0][N]=0, mx[i][0][N]=(1<<(i+1))-1; for(int j=1; j<25; j++) for(int k=0; k<=N; k++) { nxt[i][j][k]=nxt[i][j-1][nxt[i][j-1][k]]; sum[i][j][k]=sum[i][j-1][k]+sum[i][j-1][nxt[i][j-1][k]]; mx[i][j][k]=min(mx[i][j-1][k], mx[i][j-1][nxt[i][j-1][k]]-(int)min((ll)INT_MAX, sum[i][j-1][k])); } } for(int j=0; j<25; j++) for(int k=0; k<=N; k++) mx[24][j][k]=INT_MAX; } long long simulate(int x, int z) { int k=x; ll v=z; for(int i=0; i<25; i++) { int kk=k; ll vv=v; for(int j=24; j>=0; j--) if(vv<=mx[i][j][kk]) vv+=sum[i][j][kk], kk=nxt[i][j][kk]; if(kk==N) { for(int j=24; j>=0; j--) if(nxt[i][j][k]!=N) v+=sum[i][j][k], k=nxt[i][j][k]; if(k!=N) v+=sum[i][0][k], k=nxt[i][0][k]; return v; } if(vv<(1<<(i+1))) { if(vv>=S[kk]) vv+=S[kk], kk=W[kk]; else vv+=P[kk], kk=L[kk]; } k=kk, v=vv; } }

Compilation message (stderr)

dungeons.cpp: In function 'long long int simulate(int, int)':
dungeons.cpp:46:1: warning: control reaches end of non-void function [-Wreturn-type]
   46 | }
      | ^
/tmp/ccwVi0NV.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