Робот
면접 대비시간 제한1초메모리 제한1024 MB
각 작업에 마감일과 지연 벌금이 주어질 때, 하루에 하나씩 수행해 총 벌금이 최소가 되는 일정을 구하고 최적 배정을 출력한다.
문제
Робот должен выполнить заданий.
Робот начинает работать в первый день и каждый день может выполнить ровно одну работу. Про каждую работу известен последний день, когда ее можно выполнить и , и штраф , который придется заплатить, если работа не будет выполнена в срок.
Помогите роботу решить, в каком порядке выполнять работы, чтобы суммарный штраф был как можно меньше.
Например, если есть 3 работы, первую необходимо выполнить в первый день и штраф за невыполнение 2, вторую также необходимо выполнить в первый день и штраф за невыполнение 3, а третью необходимо выполнить не позже третьего дня и штраф за невыполнение 1, то оптимально выполнить сначала вторую, потом третью, а затем первую работу. В этом случае не в срок выполнено только первая работа и штраф составляет 2. Выполнить одновременно первую и вторую работу в срок невозможно.
입력
В первой строке дано единственное натуральное число () --- количество работ.
Затем следует строк, в каждой из которых содержится по два числа и (, ) --- последний день, когда можно выполнить работу без штрафа и стоимость опоздания для -й работы.
출력
В первой строке выведите единственное число, равное минимальной возможному суммарному штрафу. Во второй строке через пробел выведите чисел, где -е число --- день, в который необходимо выполнить -ю работу.
Если возможно несколько оптимальных расписаний, выведите любое из них.
힌트
В приведенном робот выполняет в срок вторую и третью работы, а первую выполняет лишь во второй день. Поэтому ему приходится уплатить штраф величиной 2.