Done some puzzles
[cses-programming-tasks.git] / app / cses1072.hs
diff --git a/app/cses1072.hs b/app/cses1072.hs
new file mode 100644 (file)
index 0000000..92333a1
--- /dev/null
@@ -0,0 +1,20 @@
+main :: IO ()
+main = do
+  line1 <- getLine
+  let numKnights = read line1 -- :: Int
+  let answers = [knights k | k <- [1..numKnights]]
+  putStrLn $ unlines $ map show answers
+
+
+knights :: Int -> Int
+knights 0 = 0
+knights 1 = 0
+knights 2 = 6
+knights 3 = 28
+knights k = corner + edge + middle
+  where corner = 2 * (4 * k ^ 2 - 16)
+        edge = 2 * (k - 4) * (2 * k ^ 2 - 12)
+        middle = ((k - 4) ^ 2 * (k ^ 2 - 9)) `div` 2
+
+
+