Tackled problem 1625
[cses-programming-tasks.git] / app / cses1623.hs
1 import Data.List (sort)
2
3 main :: IO ()
4 main = do
5 line1 <- getLine
6 line2 <- getLine
7 let nums = reverse $ sort $ map read $ words line2 :: [Int]
8 print $ solve nums
9
10
11 solve (x:xs) = minimum diffs
12 where s = x + sum xs
13 ys = powerSet xs
14 diffs = [abs (s - 2 * (sum y)) | y <- ys]
15
16 powerSet :: [a] -> [[a]]
17 powerSet [] = [[]]
18 powerSet (x:xs) = powerSet xs ++ map (x:) (powerSet xs)