Submission #1192375

#TimeUsernameProblemLanguageResultExecution timeMemory
1192375peejCrayfish scrivener (IOI12_scrivener)C++20
100 / 100
442 ms223560 KiB
#include <bits/stdc++.h>
#include <ext/rope>
#define ll long long int

using namespace std;

const ll sz = 1e6+1;
__gnu_cxx::crope memo[sz];

ll currInd = 0;

void Init() {}

void TypeLetter(char L) {
    memo[currInd+1] = memo[currInd]+L;
    currInd++;
}

void UndoCommands(int U) {
    memo[currInd+1] = memo[currInd-U];
    currInd++;
}

char GetLetter(int P) {
    return memo[currInd][P];
}

void solve() {
    char cmd; cin >> cmd;
    if (cmd == 'T') {
      char letter; cin >> letter;
      TypeLetter(letter);
    }
    else if (cmd == 'U') {
      int number; cin >> number;
      UndoCommands(number);
    }
    else if (cmd == 'P') {
      int index; cin >> index;
      char letter;
      letter = GetLetter(index);
      cout << letter << endl;
    }
}
//int main() {
//    int tc; cin >> tc;
//    while (tc--) solve();
//}
#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...