44 lines
937 B
Python
44 lines
937 B
Python
![]() |
#/usr/bin/env python
|
||
|
|
||
|
grid = []
|
||
|
|
||
|
def check_scenic(grid, x, y):
|
||
|
v = grid[x][y]
|
||
|
# check up
|
||
|
s_up = 0
|
||
|
for i in reversed(range(x)):
|
||
|
s_up += 1
|
||
|
if grid[i][y] >= v:
|
||
|
break
|
||
|
# check down
|
||
|
s_down = 0
|
||
|
for i in range(x+1, len(grid)):
|
||
|
s_down += 1
|
||
|
if grid[i][y] >= v:
|
||
|
break
|
||
|
# check left
|
||
|
s_left = 0
|
||
|
for i in reversed(range(y)):
|
||
|
s_left += 1
|
||
|
if grid[x][i] >= v:
|
||
|
break
|
||
|
# check right
|
||
|
s_right = 0
|
||
|
for i in range(y+1, len(grid[0])):
|
||
|
s_right += 1
|
||
|
if grid[x][i] >= v:
|
||
|
break
|
||
|
|
||
|
return s_up * s_down * s_right * s_left
|
||
|
|
||
|
with open("input.txt", "r") as f:
|
||
|
for line in f:
|
||
|
grid.append([int(c) for c in line.strip()])
|
||
|
|
||
|
scenic_score = []
|
||
|
for x in range(0, len(grid)):
|
||
|
for y in range(0, len(grid[0])):
|
||
|
scenic_score.append(check_scenic(grid, x, y))
|
||
|
|
||
|
print(max(scenic_score))
|