44 lines
878 B
Python
44 lines
878 B
Python
from collections import defaultdict






def myrange(x1, y1, x2, y2):


while True:


yield(x1, y1)


if x1 == x2 and y1 == y2:


return


if x1 != x2:


x1 += (1 if x1 <= x2 else 1)


if y1 != y2:


y1 += (1 if y1 <= y2 else 1)






with open("input.txt") as f:


lines = [i.strip() for i in f.readlines()]






points = defaultdict(lambda: 0)




for line in lines:


p1, p2 = line.split(" > ")




x1, y1 = p1.split(",")


x2, y2 = p2.split(",")




x1 = int(x1)


y1 = int(y1)


x2 = int(x2)


y2 = int(y2)




# removing this if condition will include diagonal lines, the requirement for part b


if x1 == x2 or y1 == y2:


for xr, yr in myrange(x1, y1, x2, y2):


points[(xr, yr)] += 1




overlaps = 0




for point, hits in points.items():


if hits > 1:


overlaps += 1




print(overlaps)
