| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 119910 | dolphingarlic | 크레이피쉬 글쓰는 기계 (IOI12_scrivener) | C++14 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
pair<char, ll> v[1000005];
char s[1000005];
ll indx = 0, i = 0;
bool got = false;
void Init() {
}
void TypeLetter(char L) {
v[indx++] = {'T', L - 'a'};
}
void UndoCommands(ll U) {
v[indx++] = {'U', U + 1};
}
char GetLetter(ll P) {
if (!got) {
ll ptr = indx - 1;
while (ptr > -1) {
while (v[ptr].first == 'U') ptr -= v[ptr].second;
s[i++] = (char)(v[ptr--].second + 'a');
}
got = true;
}
return s[i - 1 - P];
}
// int main() {
// ll t;
// cin >> t;
// Init();
// for (ll i = 0; i < t; i++) {
// char c, d; ll e;
// cin >> c;
// switch (c) {
// case 'T':
// cin >> d;
// TypeLetter(d);
// break;
// case 'P':
// cin >> e;
// cout << GetLetter(e) << '\n';
// break;
// default:
// cin >> e;
// UndoCommands(e);
// }
// }
// }
