```python
def step_rate(amount: int, fixed: int, percent: int) -> int:
    """Return the charge for one step: fixed sum plus whole-percent share of amount, rounded down."""
    if amount < 0 or fixed < 0 or percent < 0:
        raise ValueError("amount, fixed, and percent must be non-negative")
    share = (amount * percent) // 100
    return fixed + share


def rate_steps(amounts: list, fixed: int, percent: int) -> list:
    """Return the charge for each of several amounts, in order."""
    if not isinstance(amounts, list):
        raise ValueError("amounts must be a list")
    return [step_rate(amount, fixed, percent) for amount in amounts]
```