import aocd def parse(data): ranges, ids = map(lambda s: s.split('\n'), data.strip().split('\n\n')) return [range(a, b+1) for a, b in (map(int, r.split('-')) for r in ranges)], map(int, ids) def is_fresh(ranges, id): # This is acutally just fast in python return any(id in r for r in ranges) def main(data): ranges, ids = parse(data) return sum(is_fresh(ranges, id) for id in ids) if __name__ == '__main__': solution = main(aocd.get_data(day=5, year=2025)) print(solution) aocd.submit(solution, part='a', day=5, year=2025)