code 31201;
procedure LNG INT SUBTRACT(U,V,DIFFERENCE);
integer array U,V,DIFFERENCE;
begin integer LU,LV,DIFF,I,T,J,CARRY;
   LU:=U[0]; LV:=V[0];
   if LU<LV or LU=LV and U[1]<V[1] then DIFFERENCE[0]:=0 else 
   begin DIFF:=LU - LV + 1; CARRY:=0;
      for I:=LU step -1 until DIFF do 
      begin T:=U[I] - V[I-DIFF+1] + CARRY;
         CARRY:=if T<0 then -1 else 0;
         DIFFERENCE[I]:=T - CARRY * 10 000 000
      end;
      for I:=DIFF - 1 step -1 until 1 do 
      begin T:=U[I] + CARRY; CARRY:=if T<0 then -1 else 0;
         DIFFERENCE[I]:=T - CARRY * 10 000 000
      end;
      if CARRY=-1 then 
      begin DIFFERENCE[0]:=0; goto READY end;
      I:=0; J:=LU;
      for I:=I+1 while DIFFERENCE[I]=0 and J>1 do J:=J-1;
      DIFFERENCE[0]:=J;
      if J<LU then 
      for I:=1 step 1 until J do 
      DIFFERENCE[I]:=DIFFERENCE[LU+I-J]
   end;
   READY:
end LNG INT SUBTRACT;
        eop