18 lines
417 B
Haskell
18 lines
417 B
Haskell
|
|
||
|
main = do
|
||
|
content <- getContents
|
||
|
putStrLn (show $ foldl getOp 0 (lines content))
|
||
|
|
||
|
getOp :: Int -> String -> Int
|
||
|
getOp acc number = acc + (math (read number)) + getFuel 0 (math(read number))
|
||
|
|
||
|
getFuel :: Int -> Int -> Int
|
||
|
getFuel acc fuel = do
|
||
|
if (math fuel) > 0
|
||
|
then acc + (math fuel) + getFuel acc (math fuel)
|
||
|
else
|
||
|
acc
|
||
|
|
||
|
math :: Int -> Int
|
||
|
math input = ((input `div` 3) - 2)
|