X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=src%2FCoinSolver.hs;fp=src%2FCoinSolver.hs;h=d3a9e137db9698e4afd5e7bf84487c205fe4a7d7;hb=56796d54a5048d5f38ac06b1fdea48c045bb626e;hp=0000000000000000000000000000000000000000;hpb=a0df5c6aec6ff0271ab47205f915e4647fbad4ec;p=synacor-challenge.git diff --git a/src/CoinSolver.hs b/src/CoinSolver.hs new file mode 100644 index 0000000..d3a9e13 --- /dev/null +++ b/src/CoinSolver.hs @@ -0,0 +1,19 @@ +import Data.Map.Strict as M +import Data.Map.Strict ((!)) +import Data.List + +data Coins = Red | Blue | Shiny | Corroded | Concave + deriving (Ord, Eq, Show, Enum, Bounded) + +allCoins = [Red .. Concave] + +main = print solve + +coins :: M.Map Coins Int +coins = M.fromList $ zip [Red .. Concave] [2, 9, 5, 3, 7] + +solve :: [[Coins]] +solve = [ [a, b, c, d, e] + | [a, b, c, d, e] <- permutations allCoins + , (coins ! a) + (coins ! b) * (coins ! c) ^2 + (coins ! d) ^3 - (coins ! e) == 399 + ]