-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathp11.py
More file actions
46 lines (38 loc) · 803 Bytes
/
Copy pathp11.py
File metadata and controls
46 lines (38 loc) · 803 Bytes
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
with open('p11.txt') as f:
grid = f.readlines()
for i in range(0, 20):
grid[i] = list(map(lambda x: int(x), grid[i].split()))
def prodVert(r, c):
if r < 3:
return(0)
prod = 1
for i in range(4):
prod *= grid[r - i][c]
return(prod)
def prodHor(r, c):
if c < 3:
return(0)
prod = 1
for i in range(4):
prod *= grid[r][c - i]
return(prod)
def prodDiagUp(r, c):
if c > 16 or r < 3:
return(0)
prod = 1
for i in range(4):
prod *= grid[r - i][c + i]
return(prod)
def prodDiagDown(r, c):
if c > 16 or r > 16:
return(0)
prod = 1
for i in range(4):
prod *= grid[r + i][c + i]
return(prod)
bestProd = 0
for r in range(20):
for c in range(20):
prod = max(prodVert(r, c), prodHor(r, c), prodDiagUp(r, c), prodDiagDown(r, c))
bestProd = max(bestProd, prod)
print(bestProd)