см. примечание

Изменение алгоритма подсчета необходимой суммы.
Рефакторинг, попытка улучшить читаемость, комментарии.
Прочие незначительные изменения.