45 lines
1.3 KiB
Python
Executable File
45 lines
1.3 KiB
Python
Executable File
#!/usr/bin/python
|
|
|
|
sol = 0
|
|
inputfile = open("inputtest.txt", "r")
|
|
lines = inputfile.readlines()
|
|
nums = {}
|
|
syms = {}
|
|
for line in range(len(lines)):
|
|
tempnum = ""
|
|
tempindex = -1
|
|
linenumdict = {}
|
|
linesymdict = {}
|
|
for index in range(len(lines[line])):
|
|
tempchar = lines[line][index]
|
|
if tempchar.isdigit():
|
|
tempnum += tempchar
|
|
if tempindex < 0:
|
|
tempindex = index
|
|
else:
|
|
if tempnum != "" and tempindex >= 0 :
|
|
linenumdict[tempindex] = tempnum
|
|
tempnum = ""
|
|
tempindex = -1
|
|
if tempchar not in ('.', '\n'):
|
|
linesymdict[index] = tempchar
|
|
if tempnum != "" and tempindex >= 0:
|
|
linenumdict[tempindex] = tempnum
|
|
nums[line] = linenumdict
|
|
syms[line] = linesymdict
|
|
for ykey in nums:
|
|
for xkey in nums[ykey].keys():
|
|
hasNeigh= False
|
|
startx = xkey - 1
|
|
endx = xkey + len(nums[ykey][xkey]) + 1
|
|
starty = ykey - 1
|
|
endy = ykey + 1
|
|
for y in range(starty, endy):
|
|
if y in syms:
|
|
for x in range(startx, endx):
|
|
if x in syms[y].keys():
|
|
hasNeigh = True
|
|
if hasNeigh:
|
|
sol += int(nums[ykey][xkey])
|
|
print(sol)
|