```python
def step_rate(amount: int, fixed: int, percent: int) -> int:
    """Return the charge for one step."""
    if amount <= 0 or percent < 0:
        raise ValueError("Amount and percentage must be positive.")
    
    base_charge = fixed + (amount * percent // 100)
    return base_charge

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