您的位置:首页 > 其它

bzoj1507: [NOI2003]Editor

2017-05-03 13:33 369 查看
传送门

这题是bzoj1269的弱化版。

题解见bzoj1269: [AHOI2006]文本编辑器editor

#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<ext/rope>
using namespace std;
using namespace __gnu_cxx;
int n,now,len,x,tmp;
char s[2000005];
rope <char> a;
inline int read(){
int x=0;
char ch=getchar();
for (;ch<'0'||ch>'9';ch=getchar());
for (;ch>='0'&&ch<='9';ch=getchar()) x=x*10+ch-48;
return x;
}
int main(){
n=read();
while (n--){
scanf("%s",s);
if (s[0]=='M') now=read();
else if (s[0]=='P') now--;
else if (s[0]=='N') now++;
else if (s[0]=='G'){
scanf("%d",&tmp);
for (int i=now;i<now+tmp;i++)
printf("%c",a[i]);
printf("\n");
}
else if (s[0]=='I'){
x=read();
len=a.length();
for (int i=0;i<x;i++){
s[i]=getchar();
while (s[i]=='\n') s[i]=getchar();
}
s[x]=0;
a.insert(now,s);
}
else if (s[0]=='D'){
x=read();
len=a.length();
a.erase(now,x);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: