solve :: [Int] -> [Int] -> Int solve ls rby = minimum (iter ls 6) where [red,blue,yellow] = rby iter [x,y,z] i | i == 0 = [] | i == 4 = (rWrap + bWrap + yWrap) : iter [x,z,y] (i - 1) | otherwise = (rWrap + bWrap + yWrap) : iter [y,z,x] (i - 1) where rWrap = (y + z) * 2 * red bWrap = (x + y) * 2 * blue yWrap = (z + x) * 2 * yellow main = do ls <- map read . words <$> getLine rby <- map read . words <$> getLine print $ solve ls rby