""" Calculate the number of assignment pairs, where one range fully contains the other. """ overlaps = 0 def compare(elf0, elf1): return elf1["start"] <= elf0["start"] <= elf1["end"] with open("4.in") as fh: for line in fh: line = line.strip() elves = [] for elf in line.split(","): elf_s, elf_e = [int(x) for x in elf.split("-")] elves.append({ "start": elf_s, "end": elf_e }) elf0_overlaps = compare(elves[0], elves[1]) elf1_overlaps = compare(elves[1], elves[0]) if elf0_overlaps or elf1_overlaps: overlaps += 1 print(overlaps)