blob: ca657d52efc184f53bf973c73fc0a09abeeec11a (
plain)
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
from itertools import count
size = 1001
center = (size-1) // 2
grid = [[None for _ in range(size)] for _ in range(size)]
i = 1
x, y = center, center
for cycle_nb in count():
grid[x][y] = i
y += 1
i += 1
if grid[0][-1] != None:
break
for _ in range(cycle_nb * 2 - 1):
grid[x][y] = i
x += 1
i += 1
for _ in range(cycle_nb * 2):
grid[x][y] = i
y -= 1
i += 1
for _ in range(cycle_nb * 2):
grid[x][y] = i
x -= 1
i += 1
for _ in range(cycle_nb * 2):
grid[x][y] = i
y += 1
i += 1
diag_sum = 0
for x, y in zip(range(size), range(size)):
diag_sum += grid[x][y]
adiag_sum = 0
for x, y in zip(reversed(range(size)), range(size)):
adiag_sum += grid[x][y]
print(diag_sum + adiag_sum - 1)
|