2013-03-30 2 views
0

Мы играем в игру, где есть n детей, сидящих в кругу. У каждого из них есть несколько шоколадных конфет. Общее количество шоколада таково, что их можно разделить поровну между всеми детьми.количество раундов прохождения choclate

В одном раунде любой из детей проходит один шоколад слева или справа. Нам нужно ответить, минимально, сколько таких раундов потребуется для всех из них, чтобы иметь одинаковое количество шоколадных конфет.

Дано число детей n и количество конфет с каждым из них.

Какой алгоритм мы будем применять?

ответ

0

Мой эвристический будет:

while (not equally divided) 
    find kid A with the most chocolates 
    while (A has more that he should) 
     find closest kid B with fewer than he should 
      pass one from A to B and add to the number of moves (taking distance into account) 
+0

я сомневаюсь, что будет оптимальным. – Fluvid

+0

Я тоже сомневаюсь. Какой ответ вы ищете? Алгоритм и математическое доказательство оптимальности алгоритма? –

+0

Я ищу алгоритм, который найдет оптимальный ответ. Я не слишком увлечен математическим доказательством. – Fluvid

Смежные вопросы