X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=app%2Fadvent19.hs;fp=app%2Fadvent19.hs;h=0000000000000000000000000000000000000000;hb=fd498a2713d69a5d55179ff07e58ce296d6fba94;hp=009a07c15d5c13d7c17c392eb687fa4bc696b0da;hpb=3a26b187d5dc23b05fb73daabe52a92976a7a3c7;p=advent-of-code-16.git diff --git a/app/advent19.hs b/app/advent19.hs deleted file mode 100644 index 009a07c..0000000 --- a/app/advent19.hs +++ /dev/null @@ -1,37 +0,0 @@ -module Main(main) where - -import Prelude hiding (length, take, drop) -import Data.Sequence - --- input = 5 -input = 3012210 - -main :: IO () -main = do - part1 - part2 - -part1 :: IO () -part1 = print $ 2 * (input - 2 ^ (toInteger (floor $ logBase 2 (fromIntegral input)))) + 1 - -part2 :: IO () -part2 = print $ flip index 0 $ presentSteps initial - -presentSteps :: Seq Int -> Seq Int -presentSteps elves - | isFinished elves = elves - | otherwise = presentSteps $ next elves - -initial :: Seq Int -initial = fromList [1..input] - -isFinished :: Seq Int -> Bool -isFinished elves = length elves == 1 - -next :: Seq Int -> Seq Int -next elves = prefix >< (midfix |> suffix) - where - target = length elves `quot` 2 - prefix = drop 1 $ take target elves - midfix = drop (target+1) elves - suffix = index elves 0