Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,26 @@
|
|||
import Data.List (sortBy)
|
||||
import Data.Ord (comparing)
|
||||
import Text.Printf (printf)
|
||||
|
||||
-- (name, (value, weight))
|
||||
items =
|
||||
[ ("beef", (36, 3.8))
|
||||
, ("pork", (43, 5.4))
|
||||
, ("ham", (90, 3.6))
|
||||
, ("greaves", (45, 2.4))
|
||||
, ("flitch", (30, 4.0))
|
||||
, ("brawn", (56, 2.5))
|
||||
, ("welt", (67, 3.7))
|
||||
, ("salami", (95, 3.0))
|
||||
, ("sausage", (98, 5.9))
|
||||
]
|
||||
|
||||
unitWeight (_, (val, weight)) = fromIntegral val / weight
|
||||
|
||||
solution k = loop k . sortBy (flip $ comparing unitWeight)
|
||||
where
|
||||
loop k ((name, (_, weight)):xs)
|
||||
| weight < k = putStrLn ("Take all the " ++ name) >> loop (k - weight) xs
|
||||
| otherwise = printf "Take %.2f kg of the %s\n" (k :: Float) name
|
||||
|
||||
main = solution 15 items
|
||||
Loading…
Add table
Add a link
Reference in a new issue