С какой разницы начинать?
С достаточной же ж!
Я ж предупредил, что надо подумать, что мне лень.
Нам надо, чтобы единицу товара было выгоднее отправить высокоприоритетному потребителю в ущерб низко. То бишь, проигрыш в отправке, равный разнице в ценах доставки высоко- и низкоприоритетным потребителям, был меньше штрафа.
Итак: берём максимальную цену доставки. Удваиваем — нет смысла мелочиться. Это и будет шаг штрафа.
Вводим фиктивного поставщика, который будет поставлять недостачу. Упорядочиваем потребителей по возрастанию приоритета. Цена доставки от нашего фиктивного поставщика до самых низкоприоритетных (равного, минимального приоритета) поставщиков определяем нуль; поставщикам приоритетом повыше — наш шаг, ещё повыше — удвоенный шаг и т.д.
И никаких итераций.
mserg, ваш метод кажется мне самым изящным. Жаль, что он подвергся критике
Согласен, как по мне, этот метод самый изящный, хотя парочка вопросов там возникнет. Хотя, что его жалеть, не понял. Изящные методы не стесняются подвергаться критике, нимало не теряя от того своего изящества.