summaryrefslogtreecommitdiff
path: root/haskell/p15.hs
blob: 41b93cf66530a50cf20d9265331a39afa7f77b52 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
grid_bad 0 _ = 1
grid_bad r c
	| r == c	= 2 * (grid_bad (r-1) c)
	| otherwise	= (grid_bad (r-1) c) + (grid_bad r (c-1))

grid 0 _ = 1
grid 1 n = n + 1
grid 2 n = sum [1..n] + n + 1
grid r c
	| r == c	= 2 * (grid (r-1) c)
	| otherwise	= (grid (r-1) c) + (grid r (c-1))

p15 :: Int -> Int
p15 n = grid n n

main = putStrLn $ "Solution: " ++ show (p15 20)