Tackled problem 1625
[cses-programming-tasks.git] / app / cses1072.hs
1 main :: IO ()
2 main = do
3 line1 <- getLine
4 let numKnights = read line1 -- :: Int
5 let answers = [knights k | k <- [1..numKnights]]
6 putStrLn $ unlines $ map show answers
7
8
9 knights :: Int -> Int
10 knights 0 = 0
11 knights 1 = 0
12 knights 2 = 6
13 knights 3 = 28
14 knights k = corner + edge + middle
15 where corner = 2 * (4 * k ^ 2 - 16)
16 edge = 2 * (k - 4) * (2 * k ^ 2 - 12)
17 middle = ((k - 4) ^ 2 * (k ^ 2 - 9)) `div` 2
18
19
20