比赛 |
HAOI2009 模拟试题2 |
评测结果 |
WWWWWWWTTT |
题目名称 |
可可的文本编辑器 |
最终得分 |
0 |
用户昵称 |
苏轼 |
运行时间 |
0.000 s |
代码语言 |
Pascal |
内存使用 |
0.00 MiB |
提交时间 |
2009-04-22 10:14:05 |
显示代码纯文本
{
haoi2009 moni2 t2
string
time:2009.4.21
}
program cch(input,output);
var
p,l,i,j,n,x,code:longint;
s,s1:string;
data:array[0..2100000] of char;
procedure swap(var x,y:char);
var
tmp:char;
begin
tmp:=x; x:=y; y:=tmp;
end;
begin
assign(input,'editor.in');
assign(output,'editor.out');
reset(input);
rewrite(output);
readln(n);
p:=0; l:=0;
for i:=1 to n do
begin
readln(s);
s:=s+' ';
s1:=copy(s,1,pos(' ',s)-1);
delete(s,1,pos(' ',s));
case s1[1] of
'M':begin
delete(s,length(s),1); val(s,x,code);
p:=x;
end;
'I':begin
delete(s,length(s),1); val(s,x,code);
readln(s);
for j:=p+x+1 to l+x do
data[j]:=data[j-x];
for j:=p+1 to p+x do
data[j]:=s[j-p];
inc(l,x);
end;
'D':begin
delete(s,length(s),1); val(s,x,code);
for j:=p+1 to l-x do
data[j]:=data[j+x];
dec(l,x);
end;
'R':begin
delete(s,length(s),1); val(s,x,code);
for j:=1 to (x div 2) do
swap(data[p+j],data[p+x-j+1]);
end;
'G':writeln(data[p+1]);
'P':dec(p);
'N':inc(p);
end;
end;
close(input);
close(output);
end.