trees = open("input.txt", "r").read().splitlines() outer = 2 * len(trees) + 2 * len(trees[0]) - 4 visible = [[0 for k in range(len(trees))] for l in range(len(trees[0]))] for i in range(1, len(trees) - 1): largest = trees[i][0] for j in range(1, len(trees[0]) - 1): if trees[i][j] > largest: visible[i][j] = 1 largest = trees[i][j] largest = trees[i][len(trees[0]) - 1] for j in range(1, len(trees[0]) - 1)[::-1]: if trees[i][j] > largest: visible[i][j] = 1 largest = trees[i][j] for j in range(1, len(trees[0]) - 1): largest = trees[0][j] for i in range(1, len(trees) - 1): if trees[i][j] > largest: visible[i][j] = 1 largest = trees[i][j] largest = trees[len(trees) - 1][j] for i in range(1, len(trees) - 1)[::-1]: print(i) if trees[i][j] > largest: visible[i][j] = 1 largest = trees[i][j] print(sum(sum(visible, [])) + outer)