Submission #935895

# Submission time Handle Problem Language Result Execution time Memory
935895 2024-02-29T18:21:47 Z PagodePaiva Crayfish scrivener (IOI12_scrivener) C++17
34 / 100
1000 ms 15648 KB
#include<bits/stdc++.h>
#pragma GCC optimize("03")
#pragma GCC optimization("0fast")
#define N 1000005

using namespace std;

int pai[N], h[N], jump[N], pos[N];
char letter[N];
int t;

void Init() {
  t = 0;
}

void TypeLetter(char L) {
  t++;
  pai[t] = t-1;
  h[t] = h[t-1] + 1;
  letter[t] = L;
  pos[t] = pos[t-1]+1;
  int p = t-1;
  if(h[jump[p]] - h[p] == h[jump[jump[p]]] - h[jump[p]]){
    jump[t] = jump[jump[p]];
  }
  else{
    jump[t] = p;
  }
}

void UndoCommands(int U) {
  t++;
  pai[t] = t-U-1;
  int p = pai[t];
  h[t] = h[pai[t]] + 1;
  letter[t] = letter[p];
  pos[t] = pos[p];
  if(h[jump[p]] = h[p] == h[jump[jump[p]]] - h[jump[p]]){
    jump[t] = jump[jump[p]];
  }
  else{
    jump[t] = p;
  }
}

char GetLetter(int P) {
  P++;
  int v = t;
  while(pos[v] > P){
    if(pos[jump[v]] < P){
      v = pai[v];
    }
    else{
      v = jump[v];
    }
  }
  return letter[v];
}

Compilation message

scrivener.cpp:3: warning: ignoring '#pragma GCC optimization' [-Wunknown-pragmas]
    3 | #pragma GCC optimization("0fast")
      | 
scrivener.cpp: In function 'void UndoCommands(int)':
scrivener.cpp:38:17: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
   38 |   if(h[jump[p]] = h[p] == h[jump[jump[p]]] - h[jump[p]]){
      |      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2396 KB Output is correct
2 Correct 1 ms 2396 KB Output is correct
3 Correct 1 ms 2396 KB Output is correct
4 Correct 1 ms 2396 KB Output is correct
5 Correct 0 ms 2396 KB Output is correct
6 Correct 1 ms 2396 KB Output is correct
7 Correct 1 ms 2396 KB Output is correct
8 Correct 0 ms 2396 KB Output is correct
9 Correct 1 ms 2396 KB Output is correct
10 Correct 0 ms 2396 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2396 KB Output is correct
2 Correct 1 ms 2396 KB Output is correct
3 Correct 1 ms 2396 KB Output is correct
4 Correct 1 ms 2396 KB Output is correct
5 Correct 1 ms 2396 KB Output is correct
6 Correct 1 ms 2392 KB Output is correct
7 Correct 1 ms 2396 KB Output is correct
8 Correct 1 ms 2396 KB Output is correct
9 Correct 1 ms 2396 KB Output is correct
10 Correct 1 ms 2392 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2396 KB Output is correct
2 Correct 2 ms 2516 KB Output is correct
3 Correct 1 ms 2396 KB Output is correct
4 Correct 1 ms 2396 KB Output is correct
5 Correct 1 ms 2396 KB Output is correct
6 Correct 2 ms 2392 KB Output is correct
7 Correct 1 ms 2448 KB Output is correct
8 Correct 1 ms 2544 KB Output is correct
9 Correct 2 ms 2396 KB Output is correct
10 Correct 2 ms 2392 KB Output is correct
# Verdict Execution time Memory Grader output
1 Execution timed out 1072 ms 15648 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1033 ms 5680 KB Time limit exceeded
2 Halted 0 ms 0 KB -