from typing import Any, Iterator from ..base import BaseSolver class Solver(BaseSolver): def solve(self, input: str) -> Iterator[Any]: values = [int(c) for c in input.split(",")] days = 256 lanterns = {day: 0 for day in range(days)} for value in values: for day in range(value, days, 7): lanterns[day] += 1 for day in range(days): for day2 in range(day + 9, days, 7): lanterns[day2] += lanterns[day] yield sum(v for k, v in lanterns.items() if k < 80) + len(values) yield sum(lanterns.values()) + len(values)