This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
#pragma comment(linker, "/stack:20000000")
#pragma GCC optimize("O3")
#pragma GCC optimize("-O3")
#pragma GCC optimize("Ofast")
#pragma GCC optimize("-Ofast")
// #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
// #pragma GCC optimize("unroll-loops")
#ifndef wambule
// #include ".h"
#else
#endif
const int L = 20;
int dg;
// in loving memory of the deceased structure
vector<pair<pair<char, int>, vector<int>>> ilm;
vector<int> v;
void Init() {
dg = 0;
v.clear();
ilm.clear();
ilm.push_back({{' ', -1}, vector<int>(L, -1)});
}
void TypeLetter(char c) {
int x = ilm.size();
ilm.push_back({{c, ilm[dg].first.second + 1}, vector<int>(L, -1)});
ilm[x].second[0] = dg;
for(int i = 1; i < L; ++i) {
ilm[x].second[i] = ilm[x].second[i - 1];
if(ilm[x].second[i] != -1) ilm[x].second[i] = ilm[ilm[x].second[i]].second[i - 1];
}
dg = x;
v.push_back(dg);
}
void UndoCommands(int x) {
dg = v[(int)v.size() - 1 - x];
v.push_back(dg);
}
char GetLetter(int id) {
int x = dg;
for(int i = L - 1; i >= 0; --i) {
if(ilm[x].second[i] != -1 && ilm[ilm[x].second[i]].first.second >= id) {
x = ilm[x].second[i];
}
}
#ifdef wambule
cout << "[:] " << ilm[x].first.first << endl;
#endif
return ilm[x].first.first;
}
#ifdef wambule
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
Init();
TypeLetter('a');
TypeLetter('b');
GetLetter(1);
TypeLetter('d');
UndoCommands(2);
UndoCommands(1);
GetLetter(2);
TypeLetter('e');
UndoCommands(1);
UndoCommands(5);
TypeLetter('c');
GetLetter(2);
UndoCommands(2);
GetLetter(2);
return 0;
}
#endif
Compilation message (stderr)
scrivener.cpp:3: warning: ignoring #pragma comment [-Wunknown-pragmas]
3 | #pragma comment(linker, "/stack:20000000")
|
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |