记录编号 2441 评测结果 AAAAAAAAAA
题目名称 [NOIP 2007]字符串的展开 最终得分 100
用户昵称 Gravatarbing 是否通过 通过
代码语言 Pascal 运行时间 0.031 s
提交时间 2008-09-21 11:21:02 内存使用 0.14 MiB
显示代码纯文本
program bing;
var
 s,s1:string;
 p1,p2,p3,ch:char;
 f1,f2:text;
 l,i,i1,k,o,o1:integer;
 j,m,n:char;
 a:array[0..maxint] of 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);o:=1;
 a[o]:=s[1];o:=o+1;
 for i:=2 to l-1 do begin
  if s[i]<>'-' then begin a[o]:=s[i];o:=o+1; end;
  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 begin
    if ord(s[i-1])<ord(s[i+1]) then begin
     if ord(s[i-1])+1<>ord(s[i+1]) then
     begin

         m:=succ(s[i-1]);n:=pred(s[i+1]);
         if p1='3' then for j:=m to n do
                               for k:=1 to ord(p2)-48 do
                               begin a[o]:='*';o:=o+1; end
         else begin

         if (m in ['a'..'z']) and (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
           a[o]:=j;o:=o+1;end;
        if p3='1' then for j:=m to n do
         for k:=1 to ord(p2)-48 do begin
          a[o]:=j;o:=o+1;end;
          end;
          end; end  else begin a[o]:=s[i];o:=o+1;end;end
    else begin  a[o]:=s[i];o:=o+1; end;
   end;

 for i:=1 to o-1 do write(f2,a[i]);write(f2,s[l]);
 close(f2);close(f1);
end.