code 36404; procedure VECPERM(PERM,LOW,UPP,VECTOR);value LOW,UPP; integer LOW,UPP;integer array PERM;real array VECTOR; begin integer T,J,K;real A;boolean array TODO[LOW:UPP]; for T:=LOW step 1 until UPP do TODO[T]:=true; for T:=LOW step 1 until UPP do begin if TODO[T] then begin K:=T;A:=VECTOR[K]; for J:=PERM[K] while J^=T do begin VECTOR[K]:=VECTOR[J];TODO[K]:=false;K:=J end;VECTOR[K]:=A;TODO[K]:=false end CYCLE; end FOR T; end VECPERM; eop