Distribuição do ouro

A distribuição de moedas de ouro entre um grupo de piratas pode ser representada por um array:

[3, 9, 4, 5, 5]
// O pirata 1 tem 3 moedas de ouro, o pirata 2 tem 9 moedas de ouro etc.

A diferença entre a quantidade de ouro de cada pirata e a do pirata mais rico é representada assim:

[6, 0, 5, 4, 4]
// Pois 6 = 9 - 3, 0 = 9 - 9, 4 = 9 - 5 etc.

Os piratas têm um forte senso de justiça, e um pirata matará os demais se considerar que recebeu muito pouco ouro. Cada pirata tem um limite de desigualdade individual: a diferença máxima que está disposto a tolerar antes de matar seus companheiros.

Com a distribuição de ouro acima:

[5, 0, 5, 5, 5]
// Os piratas morrem, pois 5 < 6.
// 5 é o limite de desigualdade do pirata 1, e 6 é sua diferença de ouro.

[7, 0, 5, 5, 5]
// O pirata 1 está satisfeito, pois 7 > 6.
// Todos os outros piratas também estão satisfeitos.

Dada uma distribuição de moedas e um array de limites de desigualdade, crie um método que retorne true se algum pirata morrer, ou false caso contrário.

Exemplos

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}) ➞ true

Notas

  • Um pirata mata os demais se a diferença entre sua quantidade de ouro e a do pirata mais rico for estritamente maior que seu limite de desigualdade.
  • Os arrays de distribuição de ouro e de limites de desigualdade seguem a mesma ordem. (Por exemplo, o pirata 1 ocupa o índice 0 em ambos os arrays, o pirata 2 ocupa o índice 1 em ambos os arrays etc.).