Done teleporter code
[synacor-challenge.git] / src / CoinSolver.hs
diff --git a/src/CoinSolver.hs b/src/CoinSolver.hs
new file mode 100644 (file)
index 0000000..d3a9e13
--- /dev/null
@@ -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
+        ]