# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
975751 | 2024-05-05T20:01:49 Z | marinaluca | Crayfish scrivener (IOI12_scrivener) | C++14 | 0 ms | 0 KB |
const int NMAX = 1e6 + 10; int v[NMAX], k, rez[NMAX], mat[20][NMAX]; char ans[NMAX]; 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]; }