记录编号 |
2441 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[NOIP 2007]字符串的展开 |
最终得分 |
100 |
用户昵称 |
bing |
是否通过 |
通过 |
代码语言 |
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.