Submission #103002

# Submission time Handle Problem Language Result Execution time Memory
103002 2019-03-28T12:49:13 Z wxh010910 Crayfish scrivener (IOI12_scrivener) C++17
100 / 100
834 ms 90668 KB
#include <bits/stdc++.h>

using namespace std;

const int N = 1234567;
const int LOG = 20;

int t, from[N], depth[N], anc[N][LOG];
char type[N];

void Init() {
  t = 1;
}

void TypeLetter(char L) {
  type[t] = L;
  depth[t] = depth[from[t - 1]] + 1;
  anc[t][0] = from[t - 1];
  for (int i = 1; depth[t] >> i; ++i) {
    anc[t][i] = anc[anc[t][i - 1]][i - 1];
  }
  from[t] = t;
  ++t;
}

void UndoCommands(int U) {
  from[t] = from[t - 1 - U];
  ++t;
}

char GetLetter(int P) {
  int jump = depth[from[t - 1]] - 1 - P;
  int x = from[t - 1];
  for (int i = 0; jump >> i; ++i) {
    if (jump >> i & 1) {
      x = anc[x][i];
    }
  }
  return type[x];
}
# Verdict Execution time Memory Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 ms 384 KB Output is correct
3 Correct 2 ms 384 KB Output is correct
4 Correct 2 ms 384 KB Output is correct
5 Correct 2 ms 384 KB Output is correct
6 Correct 3 ms 384 KB Output is correct
7 Correct 2 ms 384 KB Output is correct
8 Correct 2 ms 384 KB Output is correct
9 Correct 3 ms 384 KB Output is correct
10 Correct 2 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 ms 384 KB Output is correct
3 Correct 2 ms 384 KB Output is correct
4 Correct 2 ms 384 KB Output is correct
5 Correct 2 ms 384 KB Output is correct
6 Correct 2 ms 384 KB Output is correct
7 Correct 3 ms 384 KB Output is correct
8 Correct 2 ms 384 KB Output is correct
9 Correct 2 ms 412 KB Output is correct
10 Correct 2 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 4 ms 512 KB Output is correct
2 Correct 4 ms 640 KB Output is correct
3 Correct 4 ms 812 KB Output is correct
4 Correct 0 ms 768 KB Output is correct
5 Correct 4 ms 640 KB Output is correct
6 Correct 4 ms 768 KB Output is correct
7 Correct 3 ms 768 KB Output is correct
8 Correct 5 ms 896 KB Output is correct
9 Correct 4 ms 784 KB Output is correct
10 Correct 4 ms 768 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 632 ms 63632 KB Output is correct
2 Correct 711 ms 80544 KB Output is correct
3 Correct 471 ms 80944 KB Output is correct
4 Correct 493 ms 85800 KB Output is correct
5 Correct 693 ms 75044 KB Output is correct
6 Correct 543 ms 87228 KB Output is correct
7 Correct 642 ms 76792 KB Output is correct
8 Correct 684 ms 85504 KB Output is correct
9 Correct 778 ms 81420 KB Output is correct
10 Correct 326 ms 90668 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 666 ms 58084 KB Output is correct
2 Correct 721 ms 55008 KB Output is correct
3 Correct 413 ms 68600 KB Output is correct
4 Correct 508 ms 61416 KB Output is correct
5 Correct 542 ms 78328 KB Output is correct
6 Correct 531 ms 80840 KB Output is correct
7 Correct 562 ms 80580 KB Output is correct
8 Correct 787 ms 69776 KB Output is correct
9 Correct 834 ms 67044 KB Output is correct
10 Correct 226 ms 89544 KB Output is correct