Есть ответ 👍

Курьер
ограничение времени 1 секунда
ограничение памяти 256mb
ввод стандартный ввод или input.txt
вывод стандартный вывод или output.txt
курьеру васе поручили доставить n посылок. вася начинает работать в первый день и каждый день может доставить ровно одну посылку. про каждую посылку известен последний день, когда ее можно доставить di, и штраф wi, который придется заплатить, если посылка не будет доставлена в срок.

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

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


формат ввода
в первой строке дано единственное натуральное число n (1 ≤ n ≤ 200 000) — количество посылок.

затем следует n строк, в каждой из которых содержится по два числа di и wi (1 ≤ di ≤ 200 000, 1 ≤ wi ≤ 200 000) — последний день, когда можно доставить посылку без штрафа и стоимость опоздания для i-й посылки.


формат вывода
в первой строке выведите единственное число, равное минимально возможному суммарному штрафу. во второй строке через пробел выведите n чисел, где i-е число — день, в который необходимо доставить i-ю посылку.

если возможно несколько оптимальных расписаний, выведите любое из них.

246
389
Посмотреть ответы 2

Ответы на вопрос:


ответ: надо доставит 6 посылок

объяснение:

pyanoes
4,6(41 оценок)

1. var     n,i,m: integer;     x: real; begin write('число оценок: ');   readln(n); for i: =1 to n do   begin   writeln('введите оценку: ');   readln(m);   x: =x+m   end; x: =round(x/n); writeln('оценка за четверть ',x) end.2.var    n: integer;   a,b,c: real; beginwrite('число a: '); readln(a); if a> 0 then n: =1; write('число b: '); readln(b); if b> 0 then n: =n+1; write('число c: '); readln(c); if c> 0 then n: =n+1; writeln('число положительных ',n)end.3.var    n,i,s: integer;     a: array of integer; beginwrite('размер массива: '); readln(n); setlength(a, n); for i: =0 to n-1 do  begin  a[i]: =random(-3,3);   write(a[i]: 3);   if a[i]< > 0 then s: =s+1  end; writeln; write('ненулевых  элементов: ',s);   end.

Популярно: Информатика