讨论 / Pascal AC1
Heartbeat 2016-01-12 02:14:55
点我顶贴 收藏 删除
var s,x:ansistring;

p1,p2,p3,i,j,k:longint;

begin

readln(p1,p2,p3);

read(s);

for i:=1 to length(s) do

if s[i]='-' then begin

if ((s[i-1]>='a')and(s[i+1]<='z'))or((s[i-1]>='0')and(s[i+1]<='9')) then

begin

if ord(s[i+1])<=ord(s[i-1]) then x:=x+s[i];

if ord(s[i+1])-1>ord(s[i-1]) then begin

if p1=1 then

if p3=1 then begin

for k:=ord(lowercase(s[i-1]))+1 to ord(lowercase(s[i+1]))-1 do

for j:=1 to p2 do

x:=x+chr(k);

end

else begin

for k:=ord(lowercase(s[i+1]))-1 downto ord(lowercase(s[i-1]))+1 do

for j:=1 to p2 do

x:=x+chr(k);

end;

if p1=2 then

if p3=1 then begin

for k:=ord(upcase(s[i-1]))+1 to ord(upcase(s[i+1]))-1 do

for j:=1 to p2 do

x:=x+chr(k);

end

else begin

for k:=ord(upcase(s[i+1]))-1 downto ord(upcase(s[i-1]))+1 do

for j:=1 to p2 do

x:=x+chr(k);

end;

if p1=3 then

for k:=ord(upcase(s[i-1]))+1 to ord(upcase(s[i+1]))-1 do

for j:=1 to p2 do

x:=x+'*';

end;

end

else x:=x+s[i];

end

else x:=x+s[i];

write(x);

end.

查看更多回复
提交回复