题目描述

早苗入手了最新的高级打字机。最新款自然有着与以往不同的功能,那就是它具备撤销功能,厉害吧。

请为这种高级打字机设计一个程序,支持如下3种操作:

T x:在文章末尾打下一个小写字母x。(type操作)

U x:撤销最后的x次修改操作。(Undo操作)(注意Query操作并不算修改操作)

Q x:询问当前文章中第x个字母并输出。(Query操作)文章一开始可以视为空串。

输入

第1行:一个整数n,表示操作数量。

以下n行,每行一个命令。保证输入的命令合法。

输出

每行输出一个字母,表示Query操作的答案。

数据

对于40%的数据 n<=200;

对于100%的数据 n<=100000;保证Undo操作不会撤销Undo操作。

<高级挑战>

对于200%的数据 n<=100000;Undo操作可以撤销Undo操作。

蒟蒻分析

其实IOI挑战那部分对限制也没啥帮助。。。看这数据点,幸好他不卡数据。

我们可以设个[1..20000]的滚动数组(This is why I said that just now)l[i]表示第i个状态时的字符串。撤回操作只用将状态设回前面就够了。

好奇宝宝倾情赞助提问时间

上面那题目都是瞎搞,你自己点开我职业看看我才中学生好伐。。。

为甚只用20000?

数据不想卡死你。

为什么你能过?

因为我长得帅。

能发源码吗?

哎呀,你想得太天真啦!我是那种让你们一点思考空间都没有直接复制的人吗?我像吗?

var
n,i,p,g,m:longint;
l:array[0..20000]of ansistring;
s,x:char;
begin
readln(n);
for i:=1 to n do
begin
read(s);
read(x);
if (s='T') then
begin
readln(x);
g:=p mod 20000+1;
l[g]:=l[p]+x;
p:=g;
end;
if (s='U') then
begin
readln(m);
p:=p mod 20000+1;
l[p]:=l[(p-m+19999)mod 20000];
end;
if (s='Q') then
begin
readln(m);
writeln(l[p,m]);
end;
end;
end.

最新文章

  1. 前端学php之常量
  2. 解决:error: .repo/manifests/: contains uncommitted changes
  3. [Unity3D]Unity+Android交互教程——让手机&quot;动&quot;起来
  4. nginx配置PATH_INFO模式
  5. JVM-类文件结构
  6. Careercup - Google面试题 - 5692127791022080
  7. 40个最好的Tumblr主题
  8. JavaScript学习总结-技巧、有用函数、简洁方法、编程细节
  9. A XSS filter for Java EE web apps--转载
  10. pyes-elasticsearch的python客户端使用笔记
  11. JS学习之路,之弹性运动框架
  12. Vue.js—快速入门
  13. Windows 7 SP1 x64 LSP
  14. 029_shell编写工作常用工具类总结
  15. LOJ #2541. 「PKUWC 2018」猎人杀(容斥 , 期望dp , NTT优化)
  16. Mybatis之mapper.xml配置文件中的#{}和${}
  17. day17作业
  18. 【android】 adb logcat命令查看并过滤android输出log
  19. Win下Eclipse提交Hadoop程序出错:org.apache.hadoop.security.AccessControlException: Permission denied: user=D
  20. 【Go入门教程5】流程(if、goto、for、switch)和函数(多个返回值、变参、传值与传指针、defer、函数作为值/类型、Panic和Recover、main函数和init函数、import)

热门文章

  1. 搭建Elasticsearch Logstash Kibana 日志系统
  2. JavaScript基础-05-数组、Date对象、Math、包装类、字符串方法
  3. 总结vue知识体系之实用技巧
  4. 【Hyeri】上传本地代码到Github
  5. JavaSwing关于GridBagLayout(网格袋布局)的使用
  6. Nginx学习简记_part1
  7. 数据隐私和GDPR
  8. 【转】Camera 简介
  9. ARM开发板挂载Ubuntu18.04主机的NFS共享文件夹
  10. LCA详解