import Control.Monad import Data.List import Data.Array main :: IO () main = do _ <- getLine a <- map read . words <$> getLine :: IO [Int] print $ f a f :: [Int] -> Int f a = if minimum a == maximum a then 1 else minimum [ g s 0 i + g s i n | i <- [1..n-1] ] where n = length a s = listArray (0, n) $ scanl (+) 0 (sort a) g :: Array Int Int -> Int -> Int -> Int g s l r = let m1 = (l + r) `div` 2; m2 = (l + r + 1) `div` 2 in (s!r - s!m2) - (s!m1 - s!l)