import numpy as np file = "inputs/day5.input" numbers = open(file, "rb").readlines() numbers = [x.decode().replace("\n", "").split(" ") for x in numbers] start_x = [int(x[0].split(",")[0]) for x in numbers] end_x = [int(x[2].split(",")[0]) for x in numbers] start_y = [int(x[0].split(",")[1]) for x in numbers] end_y = [int(x[2].split(",")[1]) for x in numbers] max_val = max(max(end_x), max(end_y)) vents = np.zeros((max_val + 1, max_val + 1)) for i in range(len(start_x)): if start_x[i] == end_x[i]: if start_y[i] < end_y[i]: start = start_y[i] end = end_y[i] else: start = end_y[i] end = start_y[i] vents[start_x[i], start : end + 1] += 1 if start_y[i] == end_y[i]: if start_x[i] < end_x[i]: start = start_x[i] end = end_x[i] else: start = end_x[i] end = start_x[i] vents[start : end + 1, start_y[i]] += 1 print(len(vents[vents >= 2]))