#!/usr/bin/python3 import fileinput grid = [] def score(x, y): global grid if x == 0 or y == 0: return 0 if y == len(grid) - 1: return 0 if x == len(grid[y]) - 1: return 0 # Check north ht = grid[y][x] scenic = 1 s = 0 for y1 in range(y - 1, -1, -1): s += 1 if grid[y1][x] >= ht: break scenic *= s # Check south s = 0 for y1 in range(y + 1, len(grid), 1): s += 1 if grid[y1][x] >= ht: break scenic *= s # Check east s = 0 for x1 in range(x + 1, len(grid[y]), 1): s += 1 if grid[y][x1] >= ht: break scenic *= s # Check west s = 0 for x1 in range(x - 1, -1, -1): s += 1 if grid[y][x1] >= ht: break scenic *= s # Nowhere left to check return scenic for line in fileinput.input(): row = [] for t in line.rstrip(): row.append(int(t)) grid.append(row) max = 0 for y in range(0, len(grid)): for x in range(0, len(grid[y])): s = score(x, y) if s > max: max = s print(max)