18 lines
439 B
Haskell
18 lines
439 B
Haskell
|
#!/usr/bin/env runghc
|
||
|
|
||
|
module Day13.Part1 where
|
||
|
|
||
|
ts = 1000434
|
||
|
bids = [17,41,983,29,19,23,397,37,13]
|
||
|
|
||
|
waitTime ts bid = (ts `div` bid) * bid + bid - ts
|
||
|
|
||
|
minimumBy fn (inp:inps) = minimumBy' fn inps inp
|
||
|
where
|
||
|
minimumBy' _ [] curr = curr
|
||
|
minimumBy' fn (x:xs) curr
|
||
|
| fn curr < fn x = minimumBy' fn xs curr
|
||
|
| otherwise = minimumBy' fn xs x
|
||
|
|
||
|
main = putStrLn (show $ fst $ minimumBy snd $ zip bids $ map (waitTime ts) bids)
|