测试结果2: 通过本测试点|有效耗时47ms
测试结果3: 通过本测试点|有效耗时47ms
测试结果4: 通过本测试点|有效耗时47ms
测试结果5: 通过本测试点|有效耗时47ms
测试结果6: 运行错误|普通保护错误
测试结果7: 通过本测试点|有效耗时47ms
测试结果8: 运行错误|普通保护错误
测试结果9: 运行错误|普通保护错误
测试结果10: 通过本测试点|有效耗时47ms
var x1,x2,x3,n:longint;
i:char;
f:array['a'..'z'] of char;
st:ansistring;
procedure main;
var i:char;
s,p:ansistring;
j:longint;
begin
s:='';
p:='';
delete(st,n,1);
if (st[n-1]>=st[n])or(abs(ord(st[n-1])-ord(st[n]))>30) then begin
insert('&',st,n);exit;end;
if st[n-1]=char(ord(st[n])-1) then exit;
for i:=succ(st[n-1]) to pred(st[n]) do
for j:=1 to x2 do begin
if x1=2 then s:=s+f[i];
if x1=1 then s:=s+i;
if x1=3 then s:=s+'*';end;
p:='';
if x3=2 then begin
for j:=1 to length(st) do
p:=p+s[j];
s:=p; end;
insert(s,st,n);
end;
begin
readln(x1,x2,x3);
readln(st);
for i:='a' to 'z' do f[i]:=chr(ord(i)-(ord('a')-ord('A')));
repeat
n:=pos('-',st);
if n=0 then begin
while pos('&',st)>0 do
begin
n:=pos('&',st);
delete(st,n,1);
insert('-',st,n);
end;
write(st);
halt;
end;
main;
until n<0;
end.