Nesse simples desafio, você recebe uma matriz Lde números inteiros não negativos e um número de posições bmaior que 0, mas não maior que o comprimento de L. Seu código deve retornar uma nova matriz Mcujo comprimento seja be que tenha colocado na matriz L. Isso é mais fácil explicado com exemplos.
L = [1,0,5,1]e b = 2retorna M = [1,6].
L = [0,3,7,2,5,1]e b = 3retorna M = [3,9,6].
Até agora, tão simples. No entanto, nesta questão bnão precisa necessariamente se dividir len(L). Nesse caso, o último compartimento terá apenas menos números para compensar.
Cada compartimento, exceto possivelmente o último, deve ter o mesmo número de números contribuindo para o total. O último compartimento não deve ter mais números contribuindo para ele do que os outros compartimentos. O último compartimento deve ter o maior número possível de contribuintes, sujeito a outras regras.
L = [0,3,7,2,5,1]e b = 4retorna M = [3,9,6,0]. M = [10,8,0,0]não é uma saída aceitável, pois o terceiro compartimento não possui o número de nome de números que contribuem para ele como compartimentos 1e 2.
L = [0,3,7,2,5]e b = 2retorna M = [10,7]. M = [3, 14]não é uma saída aceitável, pois o último compartimento terá 3elementos que contribuem para ele, mas o primeiro possui apenas 2.
L = [1,1,1,1,1,1,1]e b = 3retorna M = [3,3,1].
Como regra final, seu código deve ser executado em tempo linear.
Você pode usar qualquer idioma ou biblioteca que desejar e pode assumir que a entrada é fornecida da maneira que achar conveniente.
Acontece que existem algumas entradas que não podem ser resolvidas. Por exemplo [1,1,1,1,1]e b=4. Seu código pode gerar o que quiser para essas entradas.
your code must run in linear time- Eu encontraria qualquer algoritmo que não siga isso naturalmente bem estranho