比赛 |
暑假培训一 |
评测结果 |
|
题目名称 |
字符串的展开 |
最终得分 |
0 |
用户昵称 |
EnAsn |
运行时间 |
0.000 s |
代码语言 |
Pascal |
内存使用 |
0.00 MiB |
提交时间 |
2008-07-17 14:38:25 |
显示代码纯文本
program ex(f1,f2);
var
s,s1,s2,s3:string; f1,f2:text;
i,j,k,c,n,m,p1,p2,p3,l:integer;
ch1,ch2:char; flag,flag2:boolean;
begin
assign(f1,'expand.in'); reset(f1);
assign(f2,'expand.out'); rewrite(f2);
readln(f1,p1,p2,p3);
readln(f1,s);
flag:=true;
while flag do
begin
l:=pos('-',s);
s1:=copy(s,1,l);
delete(s,1,l);
flag2:=true;
if s1[1]='-' then begin delete(s1,1,1); flag2:=false end;
ch1:=s1[l-1];
ch2:=s[1];
s3:='';
if s1<>'' then begin
for j:=(ord(ch1)+1) to (ord(ch2)-1) do
s3:=s3+chr(j);
if (ord(s[1])-1)>ord(s1[l-1]) then
begin
if p1=2 then for j:=1 to length(s3) do
begin
if (s3[j]>='a')and(s3[j]<='z') then
s3[j]:=chr(ord(s3[j])-32);
end
else if p1=3 then
for j:=1 to length(s3) do
s3[j]:='*';
delete(s1,l,1);
write(f2,s1);
if p3=1 then
begin
for
k:=1 to length(s3) do
for c:=1 to p2 do
write(f2,s3[k]);
end
else if p3=2 then
begin
for k:=length(s3) downto 1 do
for c:=1 to p2 do
write(f2,s3[k]);
end;
end
else if (ord(s[1])-1)=ord(s1[l-1])
then
begin
delete(s1,l,1);
write(f2,s1);
end
else if ord(s[1])<=ord(s1[l-1]) then
write(f2,s1);
end
else begin write(f2,s); flag:=false; end;
end;
close(f1);
close(f2);
end.