class iVec2d: x: int y: int def __init__(self, x: int, y: int): self.x = x self.y = y INPUT_FILE = "input.txt" fresh_ranges: list[iVec2d] = [] available_ids: list[int] = [] # Parse data with open(INPUT_FILE, 'r') as file: data: str = file.read() ranges, ids = data.split("\n\n") for r in ranges.split("\n"): n1, n2 = r.strip().split('-') fresh_ranges.append(iVec2d(int(n1), int(n2))) for ingredient_id in ids.split("\n"): available_ids.append(int(ingredient_id.strip())) fresh_ingredients = 0 for ingredient_id in available_ids: for fresh_range in fresh_ranges: if ingredient_id >= fresh_range.x and ingredient_id <= fresh_range.y: fresh_ingredients += 1 break print(f'Fresh Ingredients: {fresh_ingredients}')