제출 #417256

#제출 시각아이디문제언어결과실행 시간메모리
417256Emin2004크레이피쉬 글쓰는 기계 (IOI12_scrivener)C++14
5 / 100
286 ms99500 KiB
#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define pb push_back
#define pii pair<int, int>
#define F first
#define S second

const int N = 1000005;
const int mod = 1e9+7;

struct P{
    int type;
    string ch;
    int num;
};

string s = "";
int m = 0, lastty = 0;
P a[N];

string get(int idx){
    if(idx < 0) return "";
    if(a[idx].type == 1){
        return get(idx - 1) + a[idx].ch;
    }
    else return get(idx - 1 - a[idx].num);
}

void Init() {}

void TypeLetter(char L) {
    if(lastty == 1){
        m--;
        a[m].ch += L;
    }
    else{
        a[m].type = 1;
        a[m].num = 0;
        a[m].ch = L;
    }
    m++;
    lastty = 1;
}

void UndoCommands(int U) {
    a[m].type = 2;
    a[m].num = U;
    a[m].ch = '1';
    m++;
    lastty = 2;
}

char GetLetter(int P) {
    if(lastty != 3){
        s = get(m - 1);
    }
    lastty = 3;
    return s[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...