Submission #856820

#TimeUsernameProblemLanguageResultExecution timeMemory
856820andrei_boacaDungeons Game (IOI21_dungeons)C++17
Compilation error
0 ms0 KiB
#include "dungeons.h" #include <vector> #include <bits/stdc++.h> //#include "grader.cpp" using namespace std; typedef long long ll; ll s[400005],p[400005],w[400005],l[400005],cost[400005],to[24][400005]; ll n; ll dp[24][400005][24]; ll suma[24][400005][8]; int who[24][400005][8]; ll smax=0; ll plsgo(int x,int dist,int k) { for(int i=7;i>=0;i--) while((1<<3*i)<=dist) { dist-=(1<<3*i); x=to[k][who[k][x][i]]; } return x; } ll plssum(int x,int dist,int k) { ll rez=0; for(int i=7;i>=0;i--) while((1<<3*i)<=dist) { dist-=(1<<3*i); rez+=suma[k][x][i]; x=to[k][who[k][x][i]]; } return rez; } 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]; smax=max(smax,s[i]*1LL); p[i]=P[i]; w[i]=W[i]; l[i]=L[i]; } w[n]=n; for(int k=0;k<24;k++) { for(int i=0;i<n;i++) { if(s[i]<(1<<k)) { to[k][i]=w[i]; cost[i]=s[i]; } else { to[k][i]=l[i]; cost[i]=p[i]; } suma[k][i][0]=cost[i]; who[k][i][0]=i; } cost[n]=0; to[k][n]=n; who[k][n][0]=n; suma[k][n][0]=0; for(int j=1;j<8;j++) { for(int i=0;i<=n;i++) { ll sum=0; ll x=i; for(int c=1;c<=8;c++) { sum+=suma[k][x][j-1]; x=to[k][who[k][x][j-1]]; } who[k][i][j]=x; suma[k][i][j]=sum; } } for(int i=0;i<=n;i++) { if(s[i]>=(1<<k)) dp[k][i][0]=0-s[i]; else dp[k][i][0]=-1e17; } for(int j=1;j<24;j++) { for(int i=0;i<=n;i++) { ll x=i; x=plsgo(x,(1LL<<(j-1)),k); ll sum=plssum(i,(1LL<<(j-1)),k); dp[k][i][j]=max(dp[k][i][j-1]*1LL,min(0LL,dp[k][x][j-1]+sum)); } } } } long long simulate(int x, int z) { ll rez=z; int cnt=0; while(x!=n) { ll k=0; for(int i=0;i<24;i++) if((1<<i)<rez) k=i; ll add=0; for(int i=23;i>=0;i--) { if(rez+dp[k][x][i]<0) { rez+=plssum(x,(1<<i),k); x=plsgo(x,(1<<i),k); } } rez+=s[x]; x=w[x]; } return rez; }

Compilation message (stderr)

dungeons.cpp: In function 'long long int simulate(int, int)':
dungeons.cpp:113:12: warning: unused variable 'add' [-Wunused-variable]
  113 |         ll add=0;
      |            ^~~
dungeons.cpp:106:9: warning: unused variable 'cnt' [-Wunused-variable]
  106 |     int cnt=0;
      |         ^~~
/tmp/ccP8AtZn.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