Submission #990934

# Submission time Handle Problem Language Result Execution time Memory
990934 2024-05-31T20:34:59 Z AdamGS Dungeons Game (IOI21_dungeons) C++17
63 / 100
1375 ms 277032 KB
#include "dungeons.h"
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define rep(a, b) for(int a = 0; a < (b); ++a)
#define st first
#define nd second
#define pb push_back
#define all(a) a.begin(), a.end()
const int LIM=5e4+7, LG=24, LG2=15, INF=1e9+7;
int nxt[LIM][LG][LG], sum[LIM][LG][LG2], ile[LIM][LG][LG2];
ll nxt2[LIM][LG], sum2[LIM][LG], S[LIM], P[LIM], W[LIM], L[LIM], n;
void init(int _n, vector<int>_s, vector<int>_p, vector<int>_w, vector<int>_l) {
  n=_n;
  rep(i, n) {
    S[i]=_s[i];
    P[i]=_p[i];
    W[i]=_w[i];
    L[i]=_l[i];
  }
  rep(i, LG) {
    nxt[n][i][0]=n;
    rep(j, n) {
      if(S[j]>=(1<<i)) {
        nxt[j][i][0]=L[j];
        sum[j][i][0]=P[j];
        ile[j][i][0]=min(S[j], (1<<(i+1))-P[j]);
      } else {
        nxt[j][i][0]=W[j];
        sum[j][i][0]=S[j];
        ile[j][i][0]=(1<<(i+1))-S[j];
      }
    }
    for(int l=1; l<LG2; ++l) {
      rep(j, n+1) {
        nxt[j][i][l]=nxt[nxt[nxt[j][i][l-1]][i][l-1]][i][l-1];
        sum[j][i][l]=sum[j][i][l-1]+sum[nxt[j][i][l-1]][i][l-1]+sum[nxt[nxt[j][i][l-1]][i][l-1]][i][l-1];
        ile[j][i][l]=ile[j][i][l-1];
        ile[j][i][l]=min(ile[j][i][l], ile[nxt[j][i][l-1]][i][l-1]-sum[j][i][l-1]);
        ile[j][i][l]=min(ile[j][i][l], ile[nxt[nxt[j][i][l-1]][i][l-1]][i][l-1]-sum[j][i][l-1]-sum[nxt[j][i][l-1]][i][l-1]);
        sum[j][i][l]=min(sum[j][i][l], INF);
        ile[j][i][l]=max(ile[j][i][l], 0);
      }
    }
  }
  nxt2[n][0]=n;
  rep(i, n) {
    nxt2[i][0]=W[i];
    sum2[i][0]=S[i];
  }
  for(int j=1; j<LG; ++j) {
    rep(i, n+1) {
      nxt2[i][j]=nxt2[nxt2[i][j-1]][j-1];
      sum2[i][j]=sum2[nxt2[i][j-1]][j-1]+sum2[i][j-1];
    }
  }
  return;
}
ll simulate(int x, int _z) {
  ll z=_z;
  rep(i, LG) if(z<(1ll<<(ll)(i+1))) {
    for(int j=LG2-1; j>=0; --j) rep(xd, 2) if(nxt[x][i][j]<n && ile[x][i][j]>z) {
      z+=sum[x][i][j];
      x=nxt[x][i][j];
    }
    if(z>=S[x]) {
      z+=S[x];
      x=W[x];
    } else {
      z+=P[x];
      x=L[x];
    }
    if(x==n) return z;
  }
  for(int i=LG-1; i>=0; --i) if(nxt2[x][i]<n) {
    z+=sum2[x][i];
    x=nxt2[x][i];
  }
  z+=sum2[x][0];
  x=nxt2[x][0];
  return z;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 10584 KB Output is correct
2 Correct 1 ms 10588 KB Output is correct
3 Correct 8 ms 21036 KB Output is correct
4 Correct 256 ms 275776 KB Output is correct
5 Correct 9 ms 20828 KB Output is correct
6 Correct 261 ms 275960 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 14684 KB Output is correct
2 Runtime error 109 ms 40264 KB Execution killed with signal 11
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 6 ms 14684 KB Output is correct
2 Correct 302 ms 276616 KB Output is correct
3 Correct 262 ms 276560 KB Output is correct
4 Correct 279 ms 277032 KB Output is correct
5 Correct 300 ms 276560 KB Output is correct
6 Correct 327 ms 276740 KB Output is correct
7 Correct 327 ms 276748 KB Output is correct
8 Correct 469 ms 276732 KB Output is correct
9 Correct 263 ms 276564 KB Output is correct
10 Correct 450 ms 276740 KB Output is correct
11 Correct 410 ms 276560 KB Output is correct
12 Correct 1375 ms 276740 KB Output is correct
13 Correct 1302 ms 276560 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 6 ms 14684 KB Output is correct
2 Correct 302 ms 276616 KB Output is correct
3 Correct 262 ms 276560 KB Output is correct
4 Correct 279 ms 277032 KB Output is correct
5 Correct 300 ms 276560 KB Output is correct
6 Correct 327 ms 276740 KB Output is correct
7 Correct 327 ms 276748 KB Output is correct
8 Correct 469 ms 276732 KB Output is correct
9 Correct 263 ms 276564 KB Output is correct
10 Correct 450 ms 276740 KB Output is correct
11 Correct 410 ms 276560 KB Output is correct
12 Correct 1375 ms 276740 KB Output is correct
13 Correct 1302 ms 276560 KB Output is correct
14 Correct 5 ms 14684 KB Output is correct
15 Correct 281 ms 276756 KB Output is correct
16 Correct 270 ms 276752 KB Output is correct
17 Correct 297 ms 276740 KB Output is correct
18 Correct 305 ms 276744 KB Output is correct
19 Correct 338 ms 276748 KB Output is correct
20 Correct 409 ms 276740 KB Output is correct
21 Correct 468 ms 276564 KB Output is correct
22 Correct 479 ms 276748 KB Output is correct
23 Correct 686 ms 276560 KB Output is correct
24 Correct 907 ms 276572 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 6 ms 14684 KB Output is correct
2 Correct 302 ms 276616 KB Output is correct
3 Correct 262 ms 276560 KB Output is correct
4 Correct 279 ms 277032 KB Output is correct
5 Correct 300 ms 276560 KB Output is correct
6 Correct 327 ms 276740 KB Output is correct
7 Correct 327 ms 276748 KB Output is correct
8 Correct 469 ms 276732 KB Output is correct
9 Correct 263 ms 276564 KB Output is correct
10 Correct 450 ms 276740 KB Output is correct
11 Correct 410 ms 276560 KB Output is correct
12 Correct 1375 ms 276740 KB Output is correct
13 Correct 1302 ms 276560 KB Output is correct
14 Correct 5 ms 14684 KB Output is correct
15 Correct 281 ms 276756 KB Output is correct
16 Correct 270 ms 276752 KB Output is correct
17 Correct 297 ms 276740 KB Output is correct
18 Correct 305 ms 276744 KB Output is correct
19 Correct 338 ms 276748 KB Output is correct
20 Correct 409 ms 276740 KB Output is correct
21 Correct 468 ms 276564 KB Output is correct
22 Correct 479 ms 276748 KB Output is correct
23 Correct 686 ms 276560 KB Output is correct
24 Correct 907 ms 276572 KB Output is correct
25 Correct 258 ms 275796 KB Output is correct
26 Correct 287 ms 276564 KB Output is correct
27 Correct 258 ms 276564 KB Output is correct
28 Correct 266 ms 276560 KB Output is correct
29 Correct 303 ms 276744 KB Output is correct
30 Correct 468 ms 276568 KB Output is correct
31 Correct 539 ms 276672 KB Output is correct
32 Correct 586 ms 276560 KB Output is correct
33 Correct 366 ms 276560 KB Output is correct
34 Correct 433 ms 276820 KB Output is correct
35 Correct 412 ms 276564 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 14684 KB Output is correct
2 Runtime error 109 ms 40264 KB Execution killed with signal 11
3 Halted 0 ms 0 KB -