记录编号 |
209 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[NOIP 2007]字符串的展开 |
最终得分 |
100 |
用户昵称 |
王瑞祥K |
是否通过 |
通过 |
代码语言 |
Pascal |
运行时间 |
10.000 s |
提交时间 |
2008-07-17 17:19:29 |
内存使用 |
0.01 MiB |
显示代码纯文本
program expand(input,output);
var
s,zh:string;
p1,p2,p3,i,j,l:integer;
begin
assign(input,'expand.in');assign(output,'expand.out');
reset(input);rewrite(output);
readln(input,p1,p2,p3);
readln(input,s);
l:=pos('-',s);
while l<>0 do begin
if l=1 then begin write(s[1]);delete(s,1,1);l:=pos('-',s);end
else begin
if(s[l-1]in['0'..'9'])and(s[l+1]in['a'..'z'])
or(s[l-1]in['a'..'z'])and(s[l+1]in['0'..'9'])then begin
zh:=copy(s,1,l);
write(output,zh);
end
else begin
if ord(s[l+1])<=ord(s[l-1])then begin
zh:=copy(s,1,l);
write(output,zh);end
else begin
if p3=1 then begin
zh:=copy(s,1,l-2);
write(output,zh);
zh:=s[l-1];
for i:=(ord(s[l-1])+1)to(ord(s[l+1])-1)do begin
for j:=1 to p2 do begin
if p1=1 then zh:=zh+chr(i);
if p1=2 then if s[l-1]in['a'..'z']then zh:=zh+chr(i-32) else zh:=zh+chr(i);
if p1=3 then zh:=zh+'*';
end;
end;
end;
if p3=2 then begin
zh:=copy(s,1,l-2);
write(output,zh);
zh:=s[l-1];
for i:=(ord(s[l+1])-1)downto(ord(s[l-1])+1)do begin
for j:=1 to p2 do begin
if p1=1 then zh:=zh+chr(i);
if p1=2 then if s[l-1]in['a'..'z']then zh:=zh+chr(i-32) else zh:=zh+chr(i);
if p1=3 then zh:=zh+'*';
end;
end;
end;
write(output,zh);
end;
end;
delete(s,1,l);
l:=pos('-',s);
end;
end;
write(output,s);
close(input);close(output);
end.