#/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))