题目
早苗入手了最新的高级打字机。最新款自然有着与以往不同的功能,那就是它具备撤销功能,厉害吧。
请为这种高级打字机设计一个程序,支持如下3种操作:
T x:在文章末尾打下一个小写字母x。(type操作)
U x:撤销最后的x次修改操作。(Undo操作)(注意Query操作并不算修改操作)
Q x:询问当前文章中第x个字母并输出。(Query操作)文章一开始可以视为空串。
程序
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<cmath>
using namespace std;
struct pp
{
char b[18003]=" ";
}a[12005];
int main(){
int n,m,k=0;
char s;
cin>>n;
for (int i=1;i<=n;i++){
cin>>s;
if (s=='T'){
k++;
memcpy(a[k%12003].b,a[(k-1)%12003].b,sizeof(a[k%12003].b));
cin>>a[k%12003].b[strlen(a[k%12003].b)];
}
if (s=='U'){
k++;
cin>>m;
memcpy(a[k%12003].b,a[(k-m-1)%12003].b,sizeof(a[k%12003].b));
}
if (s=='Q'){
cin>>m;
cout<<a[k%12003].b[m]<<endl;
}
}
return 0;
}