let i = ref [];; (* строит дерево m- сколько предметов уже в рюкзаке l- сколько ещё есть *) let rec proverka m n = (if (summa_mass m)>(!i) then i:=(summa_mass m); g:=m); print_float (!i); Printf.printf "%s" "\n" ; let l = (ostalnoe m) in (for n=0 to (length l)-1 do (if имеет смысл продолжить then proverka ((nth l n)::m) (n-1)) done;) ;;