import java.util.List;

/** Algo que se puede pagar: una factura, el sueldo de un empleado... */
public interface Payable {

    /** Monto por pagar, en céntimos. */
    long amountDue();

    /** Monto con formato de soles. Las clases lo heredan sin escribir nada. */
    default String formattedAmount() {
        long cents = amountDue();
        return String.format("S/ %d.%02d", cents / 100, cents % 100);
    }

    /** Suma lo que se debe en una lista de cosas por pagar. */
    static long total(List<Payable> items) {
        long sum = 0;
        for (Payable p : items) {
            sum += p.amountDue();
        }
        return sum;
    }
}
