You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
964 B
43 lines
964 B
lines = [ [int(j) for j in list(i)] for i in open("input.txt", 'r').read().splitlines()]
|
|
|
|
summa = 0
|
|
lowList = []
|
|
for x in range(len(lines)):
|
|
for y in range(len(lines[x])):
|
|
v = lines[x][y]
|
|
l = 9 if x == 0 else lines[x-1][y]
|
|
r = 9 if x == len(lines)-1 else lines[x+1][y]
|
|
u = 9 if y == 0 else lines[x][y-1]
|
|
d = 9 if y == len(lines[x])-1 else lines[x][y+1]
|
|
if v < l and v < r and v < u and v < d:
|
|
summa += 1 + v
|
|
lowList.append((x,y))
|
|
|
|
for p in lowList:
|
|
size = 0
|
|
|
|
|
|
print(summa)
|
|
explored = []
|
|
|
|
def explore(x,y):
|
|
if lines[x][y] == 9 or (x,y) in explored:
|
|
return 0
|
|
explored.append((x,y))
|
|
size = 1
|
|
if y != 0:
|
|
size += explore(x,y-1)
|
|
if y != len(lines[x]) - 1:
|
|
size += explore(x,y+1)
|
|
if x != 0:
|
|
size += explore(x-1,y)
|
|
if x != len(lines) - 1:
|
|
size += explore(x+1,y)
|
|
return size
|
|
|
|
sizes = [0]*len(lowList)
|
|
for i in range(len(lowList)):
|
|
sizes[i] = explore(lowList[i][0],lowList[i][1])
|
|
|
|
sizes.sort()
|
|
print(sizes[-1] * sizes[-2] * sizes[-3]) |