{-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE BangPatterns #-} import Control.Applicative import Control.Monad import Control.Arrow import Data.List import Data.Maybe import Data.Char import Text.Printf readInt = ( readLn :: IO Int ) readInts = map ( read :: String -> Int ) . words <$> getLine which a b f = if f then a else b mp [ a, b ] = ( a, b ) main = do [ l1, l2, l3 ] <- readInts ribbons <- sort <$> readInts print $ ( (*) 2 ) $ sum $ zipWith (*) ribbons $ ( reverse $ sort [ l1 + l2, l1 + l3, l2 + l3 ] )