open List;; let rec creat_list n = if n=0 then [] else (Random.int 1000)::(creat_list (n-1));; (* spisok *)let a = creat_list 1000;; (* kol-vo korov *)let c = 465;; let rec summa l = match l with l1::ls->l1+(summa ls) |[]->0;; let rec korova spisok n z = let rec korova2 spisok m n z = if n=0 then true else (match spisok with l1::ls->let s = (l1+m) in if s>=z then korova2 ls 0 (n-1) z else korova2 ls s n z |[]-> false) in korova2 spisok 0 n z;; let rec element n = if n mod 2 = 0 then n/2 else (n-1)/2;; let rec poisk spisok kor n m z = if m-n=1 then z else ( let s = (element (n+m)) in if korova spisok kor s then poisk spisok kor s m s else poisk spisok kor n s z);; print_int (poisk a c 0 (summa a) 1);;