diff options
Diffstat (limited to '2024/11.hs')
| -rw-r--r-- | 2024/11.hs | 14 | 
1 files changed, 3 insertions, 11 deletions
| @@ -1,19 +1,11 @@ -import qualified Data.Map.Strict as Map +import qualified Data.IntMap.Strict as Map  main :: IO ()  main = do    s0 <- map (read @Int) . words <$> getContents -  let ndigs10 0 = 1 -      ndigs10 n = pre (4::Int) -        where pre p | n >= 10 ^ p = pre (2*p) -                    | otherwise = bin 0 p -              bin lo hi | lo == hi - 1 = hi -                        | n >= 10 ^ mid = bin mid hi -                        | otherwise = bin lo mid -                where mid = (lo + hi) `quot` 2    let splitHalf n = -        let nd = ndigs10 n -        in if even nd then Just $ n `quotRem` (10 ^ (ndigs10 n `quot` 2)) +        let nd = length (show n) +        in if even nd then Just $ n `quotRem` (10 ^ (nd `quot` 2))                        else Nothing    let blink =          Map.fromListWith (+) | 
