# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
975761 | 2024-05-05T20:11:31 Z | marinaluca | Crayfish scrivener (IOI12_scrivener) | C++14 | 0 ms | 0 KB |
char ans[1000010]; int v[1000010], rez[1000010], mat[20][1000010], k; void Init(){} void Typeletter (char L){ ans[v[++k] = k] = L; rez[k] = rez[mat[0][k] = v[k - 1]] + 1; for (int i = 1; i < 20; ++ i) mat[i][k] = mat[i - 1][mat[i - 1][k]]; } void UndoCommands(int U){v[++k] = v[k - U - 1];} char GetLetter(int P){ int a = v[k]; for (int i = 20; i --;){ if (rez[mat[i][a]] > P) a = mat[i][a]; } return ans[a]; }