比赛 暑假培训一 评测结果 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.