import Data.List.Split

main :: IO ()
main = do
  input <- map read <$> splitOn "," <$> readFile "day06/input"
  print $ day06 input 80
  print $ day06 input 256

day06 :: [Int] -> Int -> Int
day06 input days = sum $ map (\x->last $ take x fibFish) i
    where i = map ((+3) . (+ days) . abs . subtract 6) input

fibFish :: [Int]
fibFish = zipWith (+) ((take 7 $ repeat 1) ++ fibFish) ((take 9 $ repeat 0) ++ fibFish)
