#Dan
Pan
#Senior
3 Division
#Cranbrook
Kingswood School
#ACSL
3 - Strings
open
I,"Strings.txt";chomp(@I=<I>);
for(@I){
@A=split/\//;@Z=split//,pop@A;
while(@A){
($W,$X)=split/-/,shift@A;
for($W){
/LS/
&&do{@Z=(@Z[$X..@Z-1],(split//,'#'x$X))};
/RS/
&&do{@Z=((split//,'#'x$X),@Z[0..@Z-$X-1])};
/LC/
&&do{@Z=@Z[$X..@Z-1,0..$X-1]};
/RC/
&&do{@Z=@Z[@Z-$X..@Z-1,0..@Z-$X-1]};
/MC/
&&do{($S,$L,$X,$D)=split//,$X;$S--;@Z=@Z[0..$S-1,($D eq
"L"?($S+$X..$S+$L-1,$S..$S+$X-1):($S+$L-$X..$S+$L-1,$S..$S+$L-$X-1)),$S+$L..@Z-1]};
/REV/
&&do{($S,$L)=split//,$X;$S--;@Z=(@Z[0..$S-1],reverse(@Z[$S..$S+$L-1]),@Z[$S+$L..@Z-1])};
/SWAP/&&do{($S,$L,$P)=split//,$X;$S--;$P--;@Z=@Z[0..$S-1,$P..$P+$L-1,$S+$L..$P-1,$S..$S+$L-1,$P+$L..@Z-1]};
/SORT/&&do{($S,$L,$M)=split//,$X;$S--;@Z=(@Z[0..$S-1],(sort{($M
eq "A"?$a cmp $b:$b cmp $a)}@Z[$S..$S+$L-1]),@Z[$S+$L..@Z-1])};
}
}
print join'',@Z;print"\n";
}