blob: e8b2d86b4dc15440203d14c4c0991d5e2a982b20 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
require 'pp'
d = 368078
N = 20
a = Array.new(N) { Array.new(N, 0) }
x = y = N/2
a[x][y] = 1
y += 1
2.step(10, 2) { |n|
steps = Array.new(n-1, [-1, 0]) +
Array.new(n, [ 0,-1]) +
Array.new(n, [ 1, 0]) +
Array.new(n+1, [ 0, 1])
steps.each { |(dx,dy)|
a[x][y] = a[x-1][y-1] + a[x-1][y] + a[x-1][y+1] +
a[x ][y-1] + a[x ][y+1] +
a[x+1][y-1] + a[x+1][y] + a[x+1][y+1]
if a[x][y] > d
p a[x][y]
exit
end
x += dx
y += dy
}
}
a.each { |l| p l }
|