Solution
31 at 2s. 1d. and 25 at 4s. 1d

Xpress-Mosel Model

model 'tobacco'

! Description  : Clarke's tobacconist
! Source       : Clarke, L.H., (1954), Fun with Figures, William Heinemann Ltd.
! Date written : Xpress-MP 25/10/99, Mosel 17/4/03
! Written by   : M J Chlond 

  uses 'mmxprs'

  declarations
    x: array(1..2) of mpvar
  end-declarations
  
  any:= x(1)

  con:= 25*x(1)+49*x(2) = 2000

  forall(i in 1..2)
    x(i) is_integer

  minimise(any)
  
  forall(i in 1..2)
    write(getsol(x(i)),' ')
    
end-model