Distribuição de ouro

Um grupo de piratas tem uma distribuição de moedas de ouro, que pode ser representada como um array:

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

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

[6, 0, 5, 4, 4]
// Como 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 outros se considerar que sua parte é pequena demais. Cada pirata tem um limiar de desigualdade exclusivo: a diferença máxima que ele está disposto a tolerar antes de matar seus companheiros.

Usando a distribuição de ouro acima:

[5, 0, 5, 5, 5]
// Os piratas são mortos, pois 5 < 6.
// 5 é a distribuição de desigualdade do pirata 1 e 6 é a diferença de ouro dele.

[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 limiares de desigualdade, crie uma função que retorne true se algum pirata for morto, ou false caso contrário.

Exemplos

piratesKilled([3, 5, 8, 3, 4], [10, 4, 2, 5, 5]) ➞ false

piratesKilled([3, 5, 8, 3, 4], [10, 4, 2, 5, 1]) ➞ true

piratesKilled([3, 3, 10], [7, 7, 0]) ➞ false

piratesKilled([3, 3, 10], [6, 6, 0]) ➞ true

Observações

  • Um pirata mata se a diferença entre sua parte de ouro e a do pirata mais rico for estritamente maior que seu limiar de desigualdade.
  • Os arrays de distribuição de ouro e de desigualdade estão ordenados da mesma forma. (e.g. O pirata 1 está no índice 0 em ambos os arrays; o pirata 2 está no índice 1 em ambos os arrays, etc.).