Distribuição de ouro

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

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

Exemplos

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]) ➞ 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.
  • As listas de distribuição de ouro e de desigualdade estão ordenadas da mesma forma. (e.g. O pirata 1 está no índice 0 de ambas as listas; o pirata 2 está no índice 1 de ambas as listas, etc.).