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]) ➞ trueObservaçõ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.).