module Day7 where import System.IO (openFile, IOMode (ReadMode), hClose, hGetContents) import Data.Text (splitOn, unpack, pack) import Prelude hiding (splitAt) splitAt :: String -> String -> [String] splitAt delimiter str = map unpack $ splitOn (pack delimiter) $ pack str fuel :: Int -> Int -> Int fuel to from = abs $ from - to main :: IO () main = do input <- openFile "inputs/7.txt" ReadMode contents <- hGetContents input let crabby = map read $ splitAt "," contents :: [Int] print $ minimum [ sum $ map (fuel i) crabby | i <- [minimum crabby .. maximum crabby] ] hClose input