def part1(inp): overlaps = 0 for pair in inp: bounds = [] for elf in pair.split(','): lower, upper = elf.split('-') bounds.append(set(range(int(lower), int(upper) + 1))) if bounds[0] >= bounds[1] or bounds[1] >= bounds[0]: overlaps = overlaps + 1 return overlaps def part2(inp): contains = 0 for pair in inp: bounds = [] for elf in pair.split(','): lower, upper = elf.split('-') bounds.append(set(range(int(lower), int(upper) + 1))) if bounds[0] & bounds[1]: contains = contains + 1 return contains if __name__ == '__main__': with open('./input.txt') as f: inp = f.read().strip().split('\n') print(part1(inp)) print(part2(inp))