Submission #169306

# Submission time Handle Problem Language Result Execution time Memory
169306 2019-12-19T16:07:09 Z AlexLuchianov Crayfish scrivener (IOI12_scrivener) C++14
34 / 100
1000 ms 82936 KB
int const nmax = 1000000;

char last;

int const lgmax = 20;

int far[1 + nmax][1 + lgmax], ptr = 0;
int level[1 + nmax];
char chr[1 + nmax];

void Init() {}

void TypeLetter(char L) {
  ++ptr;
  far[ptr][0] = ptr - 1;
  for(int h = 1; h < lgmax; h++)
    far[ptr][h] = far[far[ptr][h - 1]][h - 1];
  level[ptr] = level[far[ptr][0]] + 1;
  chr[ptr] = L;
}

void UndoCommands(int U) {
  ++ptr;
  far[ptr][0] = ptr - 1 - U;
  for(int h = 1; h < lgmax; h++)
    far[ptr][h] = far[far[ptr][h - 1]][h - 1];
  level[ptr] = level[far[ptr][0]];
}

char GetLetter(int P) {
  int pos = ptr;
  P++;
  for(int h = lgmax - 1; 0 <= h; h--)
    if(P <= level[far[pos][h]] )
      pos = far[pos][h];
  return chr[pos];
}

# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 2 ms 376 KB Output is correct
5 Correct 2 ms 256 KB Output is correct
6 Correct 2 ms 248 KB Output is correct
7 Correct 2 ms 376 KB Output is correct
8 Correct 2 ms 376 KB Output is correct
9 Correct 2 ms 376 KB Output is correct
10 Correct 2 ms 256 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 256 KB Output is correct
2 Correct 2 ms 252 KB Output is correct
3 Correct 2 ms 252 KB Output is correct
4 Correct 2 ms 256 KB Output is correct
5 Correct 2 ms 376 KB Output is correct
6 Correct 2 ms 256 KB Output is correct
7 Correct 2 ms 376 KB Output is correct
8 Correct 2 ms 376 KB Output is correct
9 Correct 2 ms 256 KB Output is correct
10 Correct 2 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 504 KB Output is correct
2 Correct 3 ms 632 KB Output is correct
3 Correct 4 ms 760 KB Output is correct
4 Correct 3 ms 760 KB Output is correct
5 Correct 3 ms 632 KB Output is correct
6 Correct 3 ms 760 KB Output is correct
7 Correct 3 ms 760 KB Output is correct
8 Correct 3 ms 760 KB Output is correct
9 Correct 3 ms 760 KB Output is correct
10 Correct 3 ms 760 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 549 ms 62712 KB Output is correct
2 Correct 740 ms 76496 KB Output is correct
3 Correct 504 ms 76024 KB Output is correct
4 Correct 595 ms 79844 KB Output is correct
5 Correct 592 ms 70264 KB Output is correct
6 Correct 419 ms 82936 KB Output is correct
7 Execution timed out 1074 ms 70932 KB Time limit exceeded
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 846 ms 57648 KB Output is correct
2 Correct 857 ms 49900 KB Output is correct
3 Correct 509 ms 63352 KB Output is correct
4 Correct 545 ms 54908 KB Output is correct
5 Correct 588 ms 73848 KB Output is correct
6 Correct 659 ms 76280 KB Output is correct
7 Correct 662 ms 76152 KB Output is correct
8 Execution timed out 1076 ms 53396 KB Time limit exceeded
9 Halted 0 ms 0 KB -