Выберите M элементов из массива так, чтобы максимум всех был минимум - PullRequest
0 голосов
/ 08 октября 2018

Имеется массив A коробок, в котором в каждой коробке есть несколько шариков, а в ячейке ith есть A[i] количество шариков.мы должны выбрать M шаров из любого ящика, чтобы максимальное количество шаров во всех ящиках было минимальным

, например A = [1,9,3,7,5,6,4,8,2] и M = 6, чем мы выберем 3 balls from 2nd box, 2 balls from 8th box и1 ball from 4th box
и окончательный массив будет выглядеть как A = [1,6,3,6,5,6,4,6,2]

Какой алгоритм мне использовать?

1 < A[i] < 1e9
1 < M < 1e18

1 Ответ

0 голосов
/ 09 октября 2018

Прежде всего, не существует стандартного алгоритма, который можно было бы использовать для решения вашей проблемы, поэтому я объясню, как это должно быть решено.

Проблема требует, чтобы вы нашли изменить массив так, чтобы вы получили минимумВозможно часто из "Макс коробки".Ключевым моментом здесь является найти максимум вашего массива и каждый раз извлекать из него шарик, и в то же время уменьшать M на 1. Это действие следует повторить, пока M! = 0.Используя ваш пример, шаги будут выглядеть так:

A = [1,9,3,7,5,6,4,8,2]
A = [1,8,3,7,5,6,4,8,2]
A = [1,7,3,7,5,6,4,8,2]
A = [1,7,3,7,5,6,4,7,2]
A = [1,6,3,7,5,6,4,7,2]
A = [1,6,3,6,5,6,4,7,2]
A = [1,6,3,6,5,6,4,6,2]

Если у вас все еще есть вопросы, не стесняйтесь задавать!Я также могу предоставить вам полный алгоритм работы, но сначала вы должны попытаться создать его самостоятельно!

...