1507: [NOI2003]Editor
来源:互联网 发布:javascript刷新父页面 编辑:程序博客网 时间:2024/05/22 01:57
1507: [NOI2003]Editor
Time Limit: 5 Sec Memory Limit: 162 MBSubmit: 3368 Solved: 1343
[Submit][Status][Discuss]
Description
Input
输入文件editor.in的第一行是指令条数t,以下是需要执行的t个操作。其中: 为了使输入文件便于阅读,Insert操作的字符串中可能会插入一些回车符,请忽略掉它们(如果难以理解这句话,可以参考样例)。 除了回车符之外,输入文件的所有字符的ASCII码都在闭区间[32, 126]内。且行尾没有空格。 这里我们有如下假定: MOVE操作不超过50000个,INSERT和DELETE操作的总个数不超过4000,PREV和NEXT操作的总个数不超过200000。 所有INSERT插入的字符数之和不超过2M(1M=1024*1024),正确的输出文件长度不超过3M字节。 DELETE操作和GET操作执行时光标后必然有足够的字符。MOVE、PREV、NEXT操作必然不会试图把光标移动到非法位置。 输入文件没有错误。 对C++选手的提示:经测试,最大的测试数据使用fstream进行输入有可能会比使用stdio慢约1秒。
Output
输出文件editor.out的每行依次对应输入文件中每条GET指令的输出。
Sample Input
15
Insert 26
abcdefghijklmnop
qrstuv wxy
Move 15
Delete 11
Move 5
Insert 1
^
Next
Insert 1
_
Next
Next
Insert 4
.\/.
Get 4
Prev
Insert 1
^
Move 0
Get 22
Insert 26
abcdefghijklmnop
qrstuv wxy
Move 15
Delete 11
Move 5
Insert 1
^
Next
Insert 1
_
Next
Next
Insert 4
.\/.
Get 4
Prev
Insert 1
^
Move 0
Get 22
Sample Output
.\/.
abcde^_^f.\/.ghijklmno
abcde^_^f.\/.ghijklmno
HINT
Source
#include<iostream>#include<cstdio>#include<queue>#include<vector>#include<bitset>#include<algorithm>#include<cstring>#include<map>#include<stack>#include<set>#include<cmath>#include<ext/rope>#include<ext/pb_ds/priority_queue.hpp>using namespace std;using namespace __gnu_cxx;const int maxn = 2E6 + 20;int pos,n,tot;char A[maxn],ch[20];rope <char> a,tmp;int main(){#ifdef DMCfreopen("DMC.txt","r",stdin);#endifcin >> tot;while (tot--) {scanf("%s",ch);if (ch[0] == 'M') scanf("%d",&pos);else if (ch[0] == 'I') {int x,len = a.length(); scanf("%d",&x);for (int i = 0; i < x; i++) {A[i] = getchar();while (A[i] == '\n') A[i] = getchar();}A[x] = 0;a.insert(pos,A);}else if (ch[0] == 'D') {int x,len = a.length(); scanf("%d",&x);a.erase(pos,x);}else if (ch[0] == 'G') {int x; scanf("%d",&x);tmp = a.substr(pos,x);int len = tmp.length();for (int i = 0; i < len; i++) putchar(tmp[i]);puts(""); tmp.clear();}else if (ch[0] == 'P') --pos;else ++pos;}return 0;}
0 0
- 【BZOJ 1507】[NOI2003]Editor
- BZOJ 1507 [NOI2003]Editor
- 1507: [NOI2003]Editor
- BZOJ 1507 NOI2003 Editor Splay
- 【splay】BZOJ 1507:[NOI2003]Editor
- BZOJ 1507: [NOI2003]Editor rope
- 【NOI2003】 editor
- BZOJ 1507([NOI2003]Editor-块状链表)
- [BZOJ1507][NOI2003][Rope]Editor
- 【BZOJ1507】[NOI2003]Editor Splay
- [BZOJ1507]NOI2003 Editor|splay
- [BZOJ1507][NOI2003]Editor
- bzoj1507【NOI2003】Editor
- [题解]bzoj1507(NOI2003)Editor
- bzoj1507: [NOI2003]Editor
- bzoj1507: [NOI2003]Editor
- BZOJ1507 [NOI2003]Editor 【splay】
- bzoj 1507: [NOI2003]Editor (块状链表)
- TCP可靠传输的实现[流量控制、拥塞控制]
- nova network-vif-plugged事件分析1
- Android显示圆角图片,可指定图片某几个角为圆角
- 使用Jetty启动WEB,请求报错java.lang.IllegalStateException: Form too large: 206150 > 200000
- L3-002. 堆栈-PAT团体程序设计天梯赛GPLT(树状数组)
- 1507: [NOI2003]Editor
- 枚举类中随机获取枚举
- python组合列表对应位置元素成为元组数组 zip
- 开始
- Java中父类强制转换成子类的原则
- python split php explode 中可能出现的问题
- 简化版Linux安装redis默认配置
- 阿里云限制
- 51nod-0-1背包问题