code 34174;
comment MCA 2406;
procedure BAKLBR(N, N1, N2, D, INT, VEC); value N, N1, N2;
integer N, N1, N2; array D, VEC; integer array INT;
begin integer I, J, K, P, Q; real DI;
P:= 1; Q:= N;
for I:= 1 step 1 until N do
begin DI:= D[I]; if DI ^= 1 then
for J:= N1 step 1 until N2 do VEC[I,J]:=
VEC[I,J] * DI; K:= INT[I];
if K > 0 then P:= P + 1 else
if K < 0 then Q:= Q - 1
end;
for I:= P - 1 + N - Q step -1 until 1 do
begin K:= INT[I]; if K > 0 then
begin P:= P - 1; if K ^= P then
ICHROW(N1, N2, K, P, VEC)
end else
begin Q:= Q + 1; if -K ^= Q then
ICHROW(N1, N2, -K, Q, VEC)
end
end
end BAKLBR;
eop