view coins.jl @ 0:d0c890aae379

Initial commit
author Lewin Bormann <lbo@spheniscida.de>
date Sat, 26 Nov 2022 09:23:14 +0100
parents
children
line wrap: on
line source


function best_selection(a::Vector{UInt})::Tuple{Int, Int, Int, Vector{UInt}}
    N = length(a)
    N_2 = div(N, 2)
    left, right = 1, N_2
    current_sum = sum(a[left:right])
    min = current_sum
    for i in 1:N_2
        current_sum -= a[i]
        current_sum += a[i+N_2]
        if current_sum <= min
            min = current_sum
            left, right = i+1, i+N_2
        end
    end
    (min, left, right, a[left:right])
end