Submission #1197857

#TimeUsernameProblemLanguageResultExecution timeMemory
1197857belgianbotCrayfish scrivener (IOI12_scrivener)C++20
34 / 100
1094 ms7336 KiB
#include <bits/stdc++.h>
using namespace std;
const int LOG = 20;
const int N = 1000000;
int p[N], depth[N];
char letter[N];
int cnt;


char getWord(int x, int P) {
  string w;
  while (p[x] != x) {
    if (letter[x]) w += letter[x];
    x = p[x];
  }
  w += letter[0];
  reverse(w.begin(), w.end());
  return w[P];

}
void Init() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  cnt = 0;
}

void TypeLetter(char L) {
  if (!cnt) {
    p[cnt] = 0;
    depth[cnt] = 1;
  }
  else {
    p[cnt] = cnt-1;
    depth[cnt] = depth[p[cnt]] + 1;
  }
  letter[cnt] = L;
  cnt++;
}

void UndoCommands(int U) {
  p[cnt] = cnt - U - 1;
  depth[cnt] = depth[p[cnt]]+1;
  cnt++;
}

char GetLetter(int P) {
  return getWord(cnt-1, P);

}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...