def solve(input: T) -> R | None: """Exact contract, including the None/edge case."""
A precise restatement fixes input/output types and every edge case (ties, no match, empty input) before coding starts.
def two_sum_indices(prices: list[int], target: int) -> tuple[int, int] | None: ...

