比赛 |
暑假培训一 |
评测结果 |
AAAWWWWWWA |
题目名称 |
字符串的展开 |
最终得分 |
40 |
用户昵称 |
王瑞祥K |
运行时间 |
0.000 s |
代码语言 |
Pascal |
内存使用 |
0.00 MiB |
提交时间 |
2008-07-17 11:45:40 |
显示代码纯文本
program expand(input,output);
var
s,x,zh:string;
p1,p2,p3,i,j,k,l:integer;
begin
assign(input,'expand.in');assign(output,'expand.out');
reset(input);rewrite(output);
readln(input,p1,p2,p3);
read(s);
x:='';
l:=pos('-',s);
while l<>0 do begin
if l=1 then begin k:=length(x);zh:=x[k];delete(x,k,1);s:=zh+s;l:=l+1;end;
zh:=copy(s,1,l-2);
x:=x+zh;
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,l-1,3);
x:=x+zh;
end
else begin
if ord(s[l-1])>=ord(s[l+1]) then begin
zh:=copy(s,l-1,l+1);
x:=x+zh;
end
else begin
if ord(s[l-1])+1=ord(s[l+1]) then begin zh:=s[l-1]+s[l+1];
x:=x+zh;end
else begin
if p3=1 then begin
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(i>=97)and(i<=122)then zh:=zh+chr(i-32) else zh:=zh+chr(i);
if p1=3 then zh:=zh+'*';
end;
end;
zh:=zh+s[l+1];
x:=x+zh;
end;
if p3=2 then begin
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(i>=97)and(i<=122)then zh:=zh+chr(i-32) else zh:=zh+chr(i);
if p1=3 then zh:=zh+'*';
end;
end;
zh:=zh+s[l+1];
x:=x+zh;
end;
end;
end;
end;
delete(s,1,l+1);
l:=pos('-',s);
end;
x:=x+s;
write(output,x);
close(input);close(output);
end.