Distribución del oro
La distribución de monedas de oro entre un grupo de piratas puede representarse mediante un arreglo:
[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]
// Ya que 6 = 9 - 3, 0 = 9 - 9, 4 = 9 - 5, etc.Los piratas tienen un marcado sentido de la justicia, y un pirata matará a los demás si considera que recibió muy poco oro. Cada pirata tiene un umbral de desigualdad individual: la diferencia máxima que está dispuesto a tolerar antes de matar a sus compañeros.
Con la distribución de oro anterior:
[5, 0, 5, 5, 5]
// Los piratas mueren, ya que 5 < 6.
// 5 es el umbral 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 un arreglo de umbrales de desigualdad, crea un método que devuelva true si muere algún pirata, o false en caso contrario.
Ejemplos
Program.piratesKilled(new int[]{3, 5, 8, 3, 4}, new int[]{10, 4, 2, 5, 5}) ➞ false
Program.piratesKilled(new int[]{3, 5, 8, 3, 4}, new int[]{10, 4, 2, 5, 1}) ➞ true
Program.piratesKilled(new int[]{3, 3, 10}, new int[]{7, 7, 0}) ➞ false
Program.piratesKilled(new int[]{3, 3, 10}, new int[]{6, 6, 0}) ➞ trueNotas
- Un pirata mata a los demás si la diferencia entre su cantidad de oro y la del pirata más rico es estrictamente mayor que su umbral de desigualdad.
- Los arreglos de distribución del oro y de umbrales de desigualdad siguen el mismo orden. (Por ejemplo, el pirata 1 ocupa el índice 0 en ambos arreglos, el pirata 2 ocupa el índice 1 en ambos arreglos, etc.).