Сапожник
Время: 1 s · Память: 256 MB
- Сортировка
Условие
У сапожника заказов. Выполнение -го заказа занимает дней. Пока работа над заказом не началась, за каждый день задержки платится штраф : если работа над -м заказом начинается после дней (то есть до него дней ушло на другие заказы), штраф равен .
Сапожник работает только над одним заказом одновременно и выполняет заказы подряд без перерывов. Найдите порядок с минимальным суммарным штрафом. Если таких порядков несколько, выведите лексикографически наименьшую последовательность номеров заказов.
Формат ввода
В первой строке (). В следующих строках и (). Заказы пронумерованы от до .
Формат вывода
В первой строке минимальный суммарный штраф. Во второй — чисел: порядок выполнения заказов.
Примеры
Ввод
4 3 4 1 1000 2 2 5 5
Вывод
42 2 1 3 4
Примечание
Перестановка двух соседних заказов и меняет только их штрафы: если раньше, лишний штраф , если раньше — . Значит, ставится раньше , если (exchange argument — метод обмена). Не сравнивайте отношения как дроби — сравнение произведений точное. При равенстве раньше заказ с меньшим номером.
В примере порядок 2 1 3 4, штраф . Суммарный штраф достигает — нужен 64-битный тип.
Источник: UVa 10026.
