比赛 暑假培训一 评测结果 AAAAAWWWWA
题目名称 字符串的展开 最终得分 60
用户昵称 bing 运行时间 0.000 s
代码语言 Pascal 内存使用 0.00 MiB
提交时间 2008-07-17 11:34:50
显示代码纯文本
program expand(input,output);
var
 s,s1:string;
 p1,p2,p3,ch:char;
 f1,f2:text;
 l,i,i1,k:integer;
 j,m,n:char;
begin
 assign(f1,'expand.in');reset(f1);
 assign(f2,'expand.out');rewrite(F2);
 readln(f1,p1,ch,p2,ch,p3);
 readln(f1,s);
 l:=length(s);
 i:=0;
 repeat i:=i+1;
  if s[i]='-' then
   if ((s[i-1]in['a'..'z'])and (s[i+1]in['a'..'z']))or
    ((s[i-1]in['0'..'9'])and (s[i+1]in['0'..'9']))
    then if ord(s[i-1])<ord(s[i+1]) then
     if ord(s[i-1])+1=ord(s[i+1]) then delete(s,i,1)
     else begin
         m:=succ(s[i-1]);n:=pred(s[i+1]);
         delete(s,i,1);
         if p1='3' then begin for j:=m to n do
                               for k:=1 to ord(p2)-48 do
                                insert('*',s,i);
                                writeln(f2,s);
                                close(F2);close(f1);
                                exit;end;
         if p1='2' then begin m:=chr(ord(m)-32);n:=chr(ord(n)-32);end;

        if p3='2' then for j:=n downto m do
          for k:=1 to ord(p2)-48 do begin
           insert(j,s,i);
           i:=i+1;
           l:=l+1;end;
        if p3='1' then for j:=m to n do
         for k:=1 to ord(p2)-48 do begin
          insert(j,s,i);
          i:=i+1;
          l:=l+1;end;
          end;
     until i>l;
 writeln(f2,s);
 close(f2);close(f1);
end.