bzoj1507: [NOI2003]Editor

来源:互联网 发布:纪检监察网络管理中心 编辑:程序博客网 时间:2024/06/05 01:07

传送门
这题是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);        }    }} 
0 0
原创粉丝点击