Distribución de oro
Un grupo de piratas tiene una distribución de monedas de oro, que puede representarse como una lista:
[3, 9, 4, 5, 5]
# El pirata 1 tiene 3 monedas de oro, el pirata 2 tiene 9 monedas de oro, etc.La diferencia entre la cantidad de oro de cada pirata y la del pirata más rico se representa así:
[6, 0, 5, 4, 4]
# Como 6 = 9 - 3, 0 = 9 - 9, 4 = 9 - 5, etc.Los piratas tienen un gran sentido de la justicia, y un pirata matará a los demás si considera que su parte es demasiado pequeña. Cada pirata tiene un umbral de desigualdad único: la diferencia máxima que está dispuesto a tolerar antes de matar a sus compañeros.
Usando la distribución de oro anterior:
[5, 0, 5, 5, 5]
# Piratas asesinados, ya que 5 < 6.
# 5 es la distribución de desigualdad del pirata 1 y 6 es su diferencia de oro.
[7, 0, 5, 5, 5]
# El pirata 1 está satisfecho, ya que 7 > 6.
# Todos los demás piratas también están satisfechos.Dada una distribución de monedas y una lista de umbrales de desigualdad, crea una función que devuelva True si algún pirata es asesinado, o False en caso contrario.
Ejemplos
pirates_killed([3, 5, 8, 3, 4], [10, 4, 2, 5, 5]) ➞ False
pirates_killed([3, 5, 8, 3, 4], [10, 4, 2, 5, 1]) ➞ True
pirates_killed([3, 3, 10], [7, 7, 0]) ➞ False
pirates_killed([3, 3, 10], [6, 6, 0]) ➞ TrueNotas
- Un pirata mata si la diferencia entre su parte de oro y la del pirata más rico es estrictamente mayor que su umbral de desigualdad.
- Las listas de distribución de oro y de desigualdad están ordenadas de la misma manera. (e.g. El pirata 1 está en el índice 0 de ambas listas; el pirata 2 está en el índice 1 de ambas listas, etc.).