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

def rate_steps(amounts: list, fixed: int, percent: int) -> list:
    """
    Returns the charge for each of several amounts, in order.
    """
    if not amounts:
        raise ValueError("Amounts list cannot be empty")
    if any(amount < 0 for amount in amounts):
        raise ValueError("Amounts list cannot contain negative values")
    return [step_rate(amount, fixed, percent) for amount in amounts]
```