Жадный алгоритм

191 задача
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
Фермер Джон и его персональный тренер Беси подымаются на гору Ванкувера. Эта гора может быть представлена как тропинка длиной \(L\) метров (\(1 \leq L \leq 10^6\)). ФД двигается по ней со скоростью \(r_F\) секунд в метр (\(1 \leq r_F \leq 10^6\)). Он не делает остановок во время движения.

Беси, однако разрешено делать остановки для отдыха и поедания травы. Но она может их делать не везде. Имеется \(N\) мест для остановок на тропинке (\(1 \leq N \leq 10^5\)); \(i\)-ая остановка находится на \(x_i\) метров от начала тропинки (\(0 < x_i < L\)), а трава на ней имеет вкусность \(c_i\) (\(1 \leq c_i \leq 10^6\)). Если Беси остановится в месте \(i\) на \(t\) секунд, она получит \(c_i \cdot t\) вкусности травы.

Беси двигается со скоростью \(r_B\) секунд за метр (\(1 \leq r_B \leq 10^6\)). Поскольку Беси моложе, \(r_B\) строго меньше \(r_F\).

Беси хочет максимизировать потребление вкусной травы. Но она беспокоится о ФД. Она думает, что если окажется позади ФД, у него пропадёт мотивация продолжать движение.

Помогите Беси найти максимальное суммарное значение съеденной вкусной травы которое она может получить, в уверенности, что ФД завершит подъём.

ФОРМАТ ВВОДА (файл reststops.in):

Первая строка ввода содержит четыре целых числа: \(L\), \(N\), \(r_F\), \(r_B\). Следующие \(N\) строк описывают остановки. Для каждого \(i\) от \(1\) до \(N\), \(i+1\)-ая строка содержит два целых числа \(x_i\) и \(c_i\), описывающих позицию \(i\)-ой остановки и вкусность травы здесь.

Гарантируется, что \(r_F > r_B\), и \(0 < x_1 < \dots < x_N < L \). Заметим, что \(r_F\) и \(r_B\) задаются в секундах на метр!

ФОРМАТ ВЫВОДА (файл reststops.out):

Одно целое число: максимальное количество единиц вкусности, которое Беси может получить.

Однажды утром Фермер Джон проснулся от звуков дробления древесины. Это коровы ломали амбар.

ФД рассердился. Он приделал к стене счётчик дней с последнего слома. Если слом случился утром, счётчик покажет 0. Если последний слом случился 3 дня назад, счётчик показывает 3. ФД тщательно записывал значение счётчика каждый день.

В конце года ФД решил действовать. Однако с логом некоторые проблемы.

ФД хочет определить, сколько слово зафиксировано. Однако он подозревает, что коровы подделали его лог и всё в чём он уверен, что он начало лог в день слома. Помогите ему определить, для каждого количества сломов какое минимальное количество записей должно быть подделано.

ФОРМАТ ВВОДА (файл taming.in):

Первая строка ввода содержит одно целое число \(N\) (\(1 \leq N \leq 100\)), обозначающее количество дней, с дня когда ФД начал логгирование.

Вторая строка содержит \(N\) целых чисел, разделённых одиночными пробелами. \(i\)-ое число это неотрицательное целое \(a_i\) (не более 100), указывающее что в день \(i\) на счётчике было \(a_i\) если коровы не подделали эту запись в логе.

ФОРМАТ ВЫВОДА (файл taming.out):

Вывод состоит из \(N\) целых чисел, по одному в строке. \(i\)-ое целое число должно содержать минимум из всех возможных последовательностей с \(i\) сломами количества записей, которые несостоятельны в этой последовательности.

На ферме Джона состоится съезд по поеданию травы.

Коровы со всего мира прибывают в местный аэропорт, чтобы посетить съезд и поесть траву. А именно \(N\) (\(1 \leq N \leq 10^5\)) коров прибывают в аэропорт, и корова \(i\) прибывает в момент времени \(t_i\) (\(0 \leq t_i \leq 10^9\)). ФД организовал \(M\) (\(1 \leq M \leq 10^5\)) автобусов для транспортировки коров из аэропорта. Каждый автобус может вместить до \(C\) (\(1 \leq C \leq N\)) коров. ФД ждёт вместе с автобусами в аэропорту и собирается распределить прибывающих коров по автобусам. Автобус убывает из аэропорта в момент, когда прибывает последняя корова. ФД хочет, чтобы прибывающие коровы не ждали в аэропорту слишком долго. Каково наименьшее значение максимального времени ожидания из всех коров, если ФД оптимально назначит их по автобусам. Время ожидания коровы есть разность между временем её прибытия и временем отправления автобуса, в который она распределена.

Гарантируется, что \(MC \geq N\).

ФОРМАТ ВВОДА (файл convention.in):

Первая строка содержит три разделённых одиночными пробелами целых числа \(N\), \(M\), \(C\). Следующая строка содержит \(N\) разделённых одиночными пробелами целых чисел, представляющих время прибытия каждой коровы.

ФОРМАТ ВЫВОДА (файл convention.out):

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

\(N\) (\(1 \leq N \leq 10^5\)) Є®а®ў ”Ґа¬Ґа  „¦®­  (а §«Ёз­® Ё¤Ґ­вЁдЁжЁа®ў ­­ле \(1 \ldots N\)), ўлбв஥­л ў ап¤. ”„ «оЎЁв, Є®Ј¤  ҐЈ® Є®а®ўл ўлбв஥­л Ї® ў®§а бв ­Ёо, ­® ᥩз б нв® ­Ґ в Є. ”„ ўл§лў Ґв Є®а®ўл Ї® ®¤­®©. Љ®Ј¤  Є®а®ў  ўл§ў ­ , ®­  Їа®ўҐапҐв, Ґб«Ё Є®а®ў  ­ҐЇ®б।б⢥­­® бЇа ў  ®в ­Ґс Ё¬ҐҐв ¬Ґ­миЁ© ID, в®Ј¤  ®­Ё ¬Ґ­повбп ¬Ґбв ¬Ё. ‡ вҐ¬, Ґб«Ё Є®а®ў  ­ҐЇ®б।б⢥­­® б«Ґў  ®в ­Ґс Ё¬ҐҐв Ў®«миЁ© ID, ®­Ё ¬Ґ­повбп ¬Ґбв ¬Ё. Љ®а®ў  ®бв ­ ў«Ёў Ґвбп ў в®зЄҐ, Є®Ј¤  Є®а®ў  б«Ґў  ®в ­Ґс Ё¬ҐҐв ¬Ґ­миЁ© ­®¬Ґа,   Є®а®ў  бЇа ў  ®в ­Ґс Ё¬ҐҐв Ў®«миЁ© ­®¬Ґа.

”„ е®зҐв ўлЎа вм Ї®¤¬­®¦Ґбвў® Є®а®ў, Ё § вҐ¬ Їа®ЁвҐаЁа®ў вмбп Ї® н⮬㠯®¤¬­®¦Ґбвўг, ўл§лў п Є ¦¤го Ё§ нвЁе Є®а®ў Ї® ®зҐаҐ¤Ё (ў Ї®ап¤ЄҐ ў®§а бв ­Ёп Ёе ID), ®Їпвм Ё ®Їпвм ¤® вҐе Ї®а, Ї®Є  ўбҐ Є®а®ўл ­Ґ бв ­гв ®вб®авЁа®ў ­л. Ќ ЇаЁ¬Ґа, Ґб«Ё ®­ ўлЎҐаҐв Ї®¤¬­®¦Ґбвў® Є®а®ў б ID \(\{2, 4, 5\}\), в® ®­ б­ з «  ўл§®ўҐв Є®а®ўг \(2\), § вҐ¬ Є®а®ўг \(4\), § вҐ¬ Є®а®ўг \(5\). …б«Ё ўбҐ \(N\) Є®а®ў Ґйс ­Ґ ®вб®авЁа®ў ­л, ®­ Ўг¤Ґв ўл§лў вм нвЁе Є®а®ў ®Їпвм Ё ®Їпвм, бЄ®«мЄ® ­г¦­® а §.

”„ е®зҐв ¬Ё­Ё¬Ё§Ёа®ў вм а §¬Ґа нв®Ј® ¬­®¦Ґбвў . Ѓ®«ҐҐ в®Ј®, Ї®бЄ®«мЄг ®­ бзЁв Ґв зЁб«® \(K\) бз бв«Ёўл¬, Ї®¬®ЈЁвҐ Ґ¬г ®ЇаҐ¤Ґ«Ёвм \(K\)-®Ґ «ҐЄбЁЄ®Ја дЁзҐбЄЁ ¬Ё­Ё¬ «м­®Ґ Ї®¤¬­®¦Ґбвў® ¬Ё­Ё¬ «м­®Ј® а §¬Ґа  в Є®Ґ, зв® ўл§лў п Ї®б«Ґ¤®ў вҐ«м­® Є®а®ў нв®Ј® Ї®¤¬­®¦Ґбвў  ­г¦­®Ґ Є®«ЁзҐбвў® а § ¬®¦­® ®вб®авЁа®ў вм ўбҐе Є®а®ў.

Џ®¤¬­®¦Ґбвў® \(S\) Ё§ \(\{1,\dots,N\}\) ­ §лў Ґвбп «ҐЄбЁЄ®Ја дЁзҐбЄЁ ¬Ґ­миҐ, 祬 Ї®¤¬­®¦Ґбвў® \(T\) Ґб«Ё бЇЁб®Є н«Ґ¬Ґ­в®ў ў \(S\) (ў Ї®ап¤ЄҐ ў®§а бв ­Ёп) «ҐЄбЁЄ®Ја дЁзҐбЄЁ ¬Ґ­миҐ, зҐ бЇЁб®Є н«Ґ¬Ґ­в®ў Ё§ \(T\) (ў Ї®ап¤ЄҐ ў®§а бв ­Ёп). Ќ ЇаЁ¬Ґа, \(\{1, 3, 6\}\) «ҐЄбЁЄ®Ја дЁзҐбЄЁ ¬Ґ­миҐ, 祬 \(\{1, 4, 5\}\).

ЋжҐ­Ёў ­ЁҐ: ‚ вҐбв е ­  \(3/16\) Ў ««®ў \(N \leq 6\) and \(K = 1\). ‚ ¤®Ї®«­ЁвҐ«м­ле вҐбв е ­  \(5/16\) Ў ««®ў, \(K = 1\). ‚ ¤®Ї®«­ЁвҐ«м­ле вҐбв е ­  \(8/16\) Ў ««®ў, ­Ґв ¤агЈЁе ®Ја ­ЁзҐ­Ё©.

”ЋђЊЂ’ ‚‚Ћ„Ђ (д ©« itout.in):

ЏҐаў п бва®Є  ᮤҐа¦Ёв ®¤­® 楫®Ґ зЁб«®, \(N\). ‚в®а п бва®Є  ᮤҐа¦Ёв ®¤­® 楫®Ґ зЁб«®, \(K\) (\(1 \leq K \leq 10^{18}\)). ’аҐвмп бва®Є  ᮤҐа¦Ёв \(N\) а §¤Ґ«с­­ле ®¤Ё­®з­л¬Ё Їа®ЎҐ« ¬Ё 楫ле зЁбҐ«, ЇаҐ¤бв ў«пойЁе ID Є®а®ў б«Ґў  ­ Їа ў®.

ѓ а ­вЁагҐвбп, Ўг¤Ґв Є Є ¬Ё­Ё¬г¬ \(K\) Є®а४в­ле Ї®¤¬­®¦Ґбвў.

”ЋђЊЂ’ ‚›‚Ћ„Ђ (д ©« itout.out):

ЏҐаў п бва®Є  ўлў®¤  ᮤҐа¦Ёв а §¬Ґа ¬Ё­Ё¬ «м­®Ј® Ї®¤¬­®¦Ґбвў . Ћбв ўиЁҐбп бва®ЄЁ ¤®«¦­л ᮤҐа¦ вм ID Є®а®ў ў \(K\)-®¬ «ҐЄбЁЄ®Ја дЁзҐбЄЁ ¬Ё­Ё¬ «м­®¬ Ї®¤¬­®¦Ґб⢥ ¬Ё­Ё¬ «м­®Ј® а §¬Ґа ,Ї® ®¤­®¬г ID ў бва®ЄҐ, ў Ї®ап¤ЄҐ ў®§а бв ­Ёп.

Џђ€Њ…ђ ‚‚Ћ„Ђ:

4 1
4 2 1 3

Џђ€Њ…ђ ‚›‚Ћ„Ђ:

2
1
4

Њл ­ зЁ­ Ґ¬ б ¬ ббЁў  \(\mathtt{\:4\:\; 2\:\; 1\:\; 3\:}\). Џ®в®¬ ”„ ўл§лў Ґв Є®а®ўг б ID 1Ў Ї®«гзЁвбп ¬ ббЁў \(\mathtt{\:1\:\; 4\:\; 2\:\; 3\:}\). Џ®в®¬ ”„ ўл§лў Ґв Є®а®ўг б ID 4 Ї®«гзЁвбп ¬ ббЁў \(\mathtt{\:1\:\; 2\:\; 3\:\; 4\:}\). ‚ нв®© в®зЄҐ ¬ ббЁў ®вб®авЁа®ў ­.

Problem credits: Spencer Compton

Каждая из коров Фермера Джона изначально производит \(G\) галлонов молока в день (\(1 \leq G \leq 10^9\)). Поскольку надой может варьироваться со временем, ФД время от времени проводит измерения и и фиксирует их в следующем формате:

35 1234 -2
14 2345 +3

Первая строка означает, что в день 35 корова #1234 дала на 2 галлона меньше, чем при последнем измерении. Следующая запись означает, что в день 14 корова #2345 дала на 3 галлона молока больше, чем при последнем измерении. ФД каждый день делает не более одного измерения. И записывает их необязательно в хронологическом порядке.

Чтобы мотивировать коров, ФД отображает на стене карточки коров, которые показывают наивысший надой. (если таких коров несколько, тогда на стене вывешиваются карточки всех таких коров). Определите количество дней, в которые ФД должен менять состав карточек.

Заметим, что у ФД огромное стадо коров, и хотя у некоторых из них делались замеры изменения надоя, всегда имеются другие коровы, чей надой остаётся \(G\) галлонов.

ФОРМАТ ВВОДА (файл measurement.in):

Первая строка ввода содержит количество измерений \(N\), которые сделал ФД (\(1 \leq N \leq 100,000\)), за которым следует \(G\). Каждая из последующих \(N\) строк содержит одно измерение в формате, описанном выше, указывая день(целое число в интервале \(1 \ldots 10^6\)), целый ID коровы (в интервале \(1 \ldots 10^9\)) и изменение надоя в последнем измерении (ненулевое целое число). Надой всегда будет в интервале \(0 \ldots 10^9\).

ФОРМАТ ВЫВОДА (файл measurement.out):

Выведите количество дней, в которые ФД должен будет менять карточки на стене.

Фермер Джон готовит деликатесную еду для своих коров. В его амбаре имеется \(N\) стогов сена (\(1 \le N \le 100,000\)). \(i\)-ый стог имеет опредённый вкус \(F_i\) (\(1 \le F_i \le 10^9\)) и определённую пряность \(S_i\) (\(1 \le S_i \le 10^9\)).

Еда будет представлять собой непрерывный интервал, содержащий один или более последовательных стогов сена (нельзя менять их порядок). Общий вкус еды равен сумме вкусов на интервале. Общая пряность еды - максимум из пряностей на интервале.

ФД хочет определить минимальную пряность, кторую можно достичь, чтобы вкус был не менее \(M\) (\(1 \le M \le 10^{18}\)).

ФОРМАТ ВВОДА (файл hayfeast.in):

Первая строка содержит целые числа \(N\) и \(M\), количество стогов сена и минимальный вкус, которого нужно достичь, соответственно. Следующие \(N\) строк описывают \(N\) стогов сена парой чисел в строке - первое вкус \(F\), а второе - пряность \(S\).

ФОРМАТ ВЫВОДА (файл hayfeast.out):

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

”Ґа¬Ґа „¦®­ бва®Ёв б ¤ Ё Ґ¬г вॡгҐвбп ЇҐаҐ¬ҐбвЁвм ¬­®Ј® ¤са­ .

‘ ¤ б®бв®Ёв Ё§ Ї®б«Ґ¤®ў вҐ«м­®бвЁ Ё§ \(N\) Є«г¬Ў (\(1 \leq N \leq 100,000\)), ѓ¤Ґ Є«г¬Ў  \(i\) Ё§­ з «м­® ᮤҐа¦Ёв \(A_i\) Ґ¤Ё­Ёж ¤са­ . ”„ е®зҐв ८࣠­Ё§®ў вм б ¤ в Є, зв®Ўл Є ¦¤ п Є«г¬Ў  бв «  ᮤҐа¦ вм \(B_i\) Ґ¤Ё­Ёж ¤са­ . \(A_i\) Ё \(B_i\) - жҐ«лҐ зЁб«  ў Ё­вҐаў «Ґ \(0 \ldots 10\).

„«п Ё§¬Ґ­Ґ­Ёп « ­¤и дв  ”„ Ё¬ҐҐв ­ҐбЄ®«мЄ® ў аЁ ­в®ў: ®­ ¬®¦Ґв ЄгЇЁвм ®¤­г Ґ¤Ё­Ёжг ¤са­  Ё Ї®«®¦Ёвм Ґс ­  «оЎго Є«г¬Ўг §  \(X\) Ґ¤Ё­Ёж ¤Ґ­ҐЈ. Ћ­ ¬®¦Ґв б­пвм ®¤­г Ґ¤Ё­Ёжг ¤са­  б «оЎ®© Є«г¬Ўл Ё Їа®¤ вм Ґс §  \(Y\) Ґ¤Ё­Ёж ¤Ґ­ҐЈ. Ћ­ в Є¦Ґ ¬®¦Ґв ЏҐаҐ¬ҐбвЁвм ®¤­г Ґ¤Ё­Ёжг ¤са­  б Є«г¬Ўл \(i\) ­  Є«г¬Ўг \(j\) §  \(Z\) times \(|i-j|\). ‚лзЁб«ЁвҐ ¬Ё­Ё¬ «м­го бв®Ё¬®бвм, §  Є®в®аго ”„ ¬®¦Ґв ўлЇ®«­Ёвм бў®© Їа®ҐЄв.

”ЋђЊЂ’ ‚‚Ћ„Ђ (д ©« landscape.in):

ЏҐаў п бва®Є  ўў®¤  ᮤҐа¦Ёв \(N\), \(X\), \(Y\), \(Z\) (\(0 \leq X, Y \le 10^8; 0 \le Z \leq 1000\)). ‘ва®Є  \(i+1\) ᮤҐа¦Ёв жҐ«лҐ зЁб«  \(A_i\) Ё \(B_i\).

”ЋђЊЂ’ ‚›‚Ћ„Ђ (д ©« landscape.out):

‚뢥¤ЁвҐ ¬Ё­Ё¬ «м­го б㬬 а­го бв®Ё¬®бвм Їа®ўҐ¤Ґ­Ёп а Ў®в.

Џђ€Њ…ђ ‚‚Ћ„Ђ:

4 100 200 1
1 4
2 3
3 2
4 0

Џђ€Њ…ђ ‚›‚Ћ„Ђ:

210

‡ ¬ҐвЁ¬ зв® в Є п § ¤ з  ¤ ў « бм ў ®¤­®¬ Ё§ ЇаҐ¦­Ёе USACO-Є®­вҐбв®ў ­  га®ў­Ґ Silver. Ћ¤­ Є® ᥩз б бгйҐб⢥­­® 㬥­м襭® ўаҐ¬п ­  вҐбв.

Ђўв®а: Brian Dean Farmer John is building a nicely-landscaped garden, and needs to move a large amount of dirt in the process.

The garden consists of a sequence of \(N\) flowerbeds (\(1 \leq N \leq 100,000\)), where flowerbed \(i\) initially contains \(A_i\) units of dirt. Farmer John would like to re-landscape the garden so that each flowerbed \(i\) instead contains \(B_i\) units of dirt. The \(A_i\)'s and \(B_i\)'s are all integers in the range \(0 \ldots 10\).

To landscape the garden, Farmer John has several options: he can purchase one unit of dirt and place it in a flowerbed of his choice for \(X\) units of money. He can remove one unit of dirt from a flowerbed of his choice and have it shipped away for \(Y\) units of money. He can also transport one unit of dirt from flowerbed \(i\) to flowerbed \(j\) at a cost of \(Z\) times \(|i-j|\). Please compute the minimum total cost for Farmer John to complete his landscaping project.

Формат входных данных:

The first line of input contains \(N\), \(X\), \(Y\), and \(Z\) (\(0 \leq X, Y \le 10^8; 0 \le Z \leq 1000\)). Line \(i+1\) contains the integers \(A_i\) and \(B_i\).

Формат выходных данных:

Please print the minimum total cost FJ needs to spend on landscaping.

Фермер Джон получил груз из \(N\) больших стогов сена (\(1 \le N \le 100,000\)), и разместил стога в различных позициях вдоль дороги, соединяющей амбар с его домом. Каждый стог с номером \(j\) имеет размер \(S_j\) и находится в уникальной позиции \(P_j\) определяющей его положение вдоль одномерной дороги. Корова Беси расположена в настоящий момент в позиции \(B\),где нет стога сена. Беси может передвигаться вдоль дороги вплоть до позиции, где расположен стог сена, но она не может проходить эту позицию. Как исключение, если она движется в некотором направлении \(D\) единиц расстояния, то она набирает скорость достаточную чтобы уничтожить любой стог сена с размером строго меньше, чем \(D\). Конечно после того как она сделает это, она может бежать дальше к другим стогам и уничтожать их аналогичным способом.

ФД перекрасил дои и амбар и хочет быть уверенным, что Беси не доберётся ни туда, ни туда (Корова и свежая краска не есть хорошая комбинация!). Соответственно, ФД хочет быть уверенным, что Беси никогда не выйдет ни за самый левый, ни за самый правый стог. ФД может добавить сена в один стог по своему выбору, так чтобы гарантировать, что Беси не выберется. Пожалуйста, помогите ему определить минимальное количество дополнительного размера, который он должен добавить к некоторому стогу сена, чтобы гарантировать, что Беси останется в ловушке.

ФОРМАТ ВВОДА (файл trapped.in):

Первая строка ввода содержит \(N\) и начальную позицию Беси \(B\). Каждая из последующих \(N\) строк описывает стог и содержит два целых числа, определяющих его размер и местоположение. Все размеры и положения находятся в диапазоне \(1\ldots 10^9\).

ФОРМАТ ВЫВОДА (файл trapped.out):

Выведите одно целое число, определяющее минимальное количество сена, которое должен добавить ФД чтобы Беси не выбралась из ловушки. Выведите -1, если это сделать невозможно.

Фермер Джон получили груз из N больших стогов сена (\(1 \le N \le 100,000\)), и разметил их в различных положениях вдоль дороги, ведущей к амбару. К несчастью, он полностью забыл, что корова Беси пасётся вдоль дороги и может попасть в ловушку между стогами сена.

Каждый стог \(j\) имеет размер \(S_j\) и позицию \(P_j\) определяющую его положение вдоль дороги. Беси может двигаться вдоль дороги вплоть до позиции стога, но не может пересечь эту позицию. Исключение – если она прошла в этом направлении \(D\) единиц расстояния, тогда она набрала достаточно скорости, чтобы протаранить стог любого размера строго меньше чем \(D\). Конечно после этого она может продолжить движение и таранить другие стога.

Беси может выйти на свободу если она в конце концов протаранит протаранит самый левый или самый правый стог. Вычислите общий размер участка дороги, состоящий из возможных точек старта Беси, из которых она не сможет выбраться.

ФОРМАТ ВООДА (ФАЙЛ trapped.in):

Первая строка ввода содержит \(N\). Каждая из последующих \(N\) строк описывает стог, и содержит два целых числа определяющих размер и позицию в диапазоне \(1\ldots 10^9\). Все позиции различны.

ФОРМАТ ВЫВОДА (файл trapped.out):

Выведите одно целое число – размер области дороги, откуда Беси не сможет выбраться.

Фермер Джон получил груз из \(N\) больших стогов сена (\(1 \le N \le 4000\)) и разместил эти стога в различных точках дороги, ведущей к его амбару. К несчастью, он совсем забыл, что Беси пасётся вдоль этой дороги и может оказаться в ловушке из этих стогов.

Каждый стог с номером \(j\) имеет размер \(S_j\) и уникальную позицию\(P_j\), задающую его положение вдоль одномерной дороги. Беси начинает движение в некоторой позиции, где не было стога и может передвигаться свободно вдоль дороги, вплоть до позиции, где размещён стог сена, но она не может перейти эту позицию. В качестве исключения, если она движется в некотором направлении \(D\) единиц расстояния, она набирает достаточно скорости, чтобы протаранить любой стог сена с высотой строго меньше, чем \(D\). Конечно, после того, как она сделает это, перед ней открывается пространство с другими стогами сена, которые она тоже может протаранить.

Беси может выйти на свободу как после самого левого, так и после самого правого стога сена. Пожалуйста, определите общую длину дороги, состоящую из тех позиций, из которых Беси не сможет выбраться. Например, если Беси не может выбраться если она начинает с позиции между стогами в позициях 1 и 5, тогда ответ будет 4 (поскольку эти позиции ограничивают область размером 4).

ФОРМАТ ВВОДА (файл trapped.in):

Первая строка ввода содержит \(N\). Каждая из последующих \(N\) строк описывает стог и содержит два целых числа, определяющих его размер и позицию, каждое в диапазоне \(1\ldots 10^9\).

ФОРМАТ ВЫВОДА (файл trapped.out):

Выведите целое число, определяющее длину части дороги из которой Беси не сможет сбежать.


Фермер Джон хочет записать как можно больше телетрансляций о Му-олимпийских играх.
График трансляций состоит из N различных программ (1 <= N <= 150), для каждой из которых указано время начала и время конца. Видео-записывающий тюнер ФД может записывать две программы одновременно. Помогите ФД определить максимальное количество программ, которое он сможет записать.

PROBLEM NAME: recording
Формат входных данных
* Строка 1: Целое число N.
* Строки 2..1+N: Каждая строка содержит время начала и время завершения программы (целые числа в интервале 0..1,000,000,000))


Формат выходных данных
* Строка 1: Максимальное количество программ, которое сможет записать ФД.
Примечание
ФД может записать не более 4 программ. Например, он может записать программы 1 и 3 на первом тюнере, И программы 2 и 4 на втором тюнере.


У Фермера Джона на ферме N склонов (1 <= N <= 1,000), каждый с целое высотой в диапазоне от 0 до 100. Зимой, когда выпадает снег, ФД организует на них лыжный тренировочный лагерь.
Однако сейчас ФД вычитал, что по новому закону придётся платить налог, если разница между его самым высоким и самым низким склоном строго больше чем 17. Поэтому если он срежет самый высокий склон или увеличит высоту самого низкого склона, так чтобы соответствовать закону (разница не больше 17), он избежит оплаты соответствующего налога за нарушение закона.
Если x^2 – стоимость изменения высоты склона на x единиц, какое минимальное количество денег придётся заплатить ФД, Чтобы привести свои склоны в соответствие с новым законом. Высоты меняются только на целую величину x.
PROBLEM NAME: skidesign
Формат входных данных
* Строка 1: Целое число N.
* Строки 2..1+N: Каждая строка содержит высоту одного склона.
Формат выходных данных
* Строка 1: Минимальное количество денег, которое нужно заплатить, чтобы разница между самым высоким и самым низким склонами стала не более чем 17 единиц.
Примечание
ФД оставит высоты 4, 20, и 21 как они были. Он добавит высоту склону с высотой 1 до высоты 4 (цена = 3^2=9) Он уменьшит высоту 24 до высоты 21 (цена = 3^2=9)

Фермер Джон решил в отпуске проехать через всю страну. Чтобы коровы не скучали, он решил арендовать огромный грузовик и взять коров с собой.
Грузовик имеет огромный бензобак, который может вместить до G (1 <= G <= 1,000,000) единиц топлива. Грузовик потребляет одну единицу топлива на одну единицу расстояния. ФД собирается проехать D (1 <= D <= 1,000,000,000) единиц расстояния.
ФД знает, что ему придется несколько раз останавливаться для дозаправки, поэтому он составил список всех N (1 <= N <= 50,000) заправочных станций вдоль маршрута. Для каждой станции i он записал ее расстояние Xi (0 <= Xi <= D) от начала маршрута, а также цену Yi (1 <= Yi <= 1,000,000) заправки единицы топлива на этой станции.
По заданной информации и тому факту, что ФД начинает свое путешествие имея ровно B (0 <= B <= D) единиц топлива, определите минимальное количество денег, которое он должен заплатить за дозаправки топливом чтобы достичь точки назначения. Если достичь точки назначения невозможно, выведите -1. Заметим, что ответ на задачу может не помещаться в стандартное 32-битное целое.
PROBLEM NAME: fuel
Формат входных данных
* Строка 1: Четыре разделенных пробелом целых числа: N, G, B, D.
* Строки 2..1+N: Каждая строка содержит два целых числа Xi и Yi , описывающих заправочную станцию i.
Формат выходных данных
* Строка 1: Минимальная цена, которую ФД должен заплатить, чтобы доехать до места назначения или -1, если доехать невозможно.
Примечание
ФД проезжает 2 единицы расстояния и останавливается, чтобы заправить 2 единицы топлива (цена 40*2), это позволяет доехать ему до станции в позиции 5, где он заправляет полный бак (цена 7*10). Когда он доезжает до позиции 10, он добавляет еще 2 единицы топлива (цена 12*2). Общая цена равна 174.
Photo#89911

Фермер Джон решил собрать панорамное фото ряда из своих N (1 <= N <= 200,000) коров, пронумерованных от 1 до N. Он сделал M M (1 <= M <= 100,000) снимков, каждый из которых покрывает непрерывный диапазон коров. Снимок i содержит коров с номерами от ai до bi включительно. Коллективное фото может и не покрывать каждую отдельную корову.
ФД заметил интересный феномен: каждый снимок содержит ровно одну корову с пятном. Основываясь на данных снимков, определите максимально возможное количество коров с пятнами. Выведите -1, если невозможно назначить пятна коровам так, чтобы соответствовать данным о снимках.
PROBLEM NAME: photo
Формат входных данных
* Строка 1: Два целых числа N и M.
* Строки 2..M+1: Строка i+1 содержит ai и bi.
Формат выходных данных
* строка 1: Максимально возможное количество коров с пятнами у ФД, или -1, если решения нет.
Примечание
Из последней фотографии мы получаем, что корова 3 или корова 4 обязательно должны быть с пятном. При любом выборе будет выполнено свойство и для первых двух снимков.

Беси и ее подружки играют в уникальную версию игры в покер с колодой из N (1 <= N <= 100,000) различных рангов, для удобства пронумерованных от 1 до N (в обычной колоде N=13). В этой игре имеется только один тип руки, который корова может играть: можно выбрать карту, помеченную i и карту, помеченную j и играть все карты с каждым значением от i до j. Такой тип руки называется "straight".
У Беси на руках сейчас ai карт ранга i (0 <= ai <= 100000). Помогите ей определить минимальное количество рук, которое она должна сыграть, чтобы избавиться от всех своих карт.
PROBLEM NAME: poker
Формат входных данных
* Строка 1: Целое число N.
* Строки 2..1+N: Строка i+1 содержит значение величины ai.
Формат выходных данных
* Строка 1: Минимальное количество "straights", чтобы Беси избавилась от всех своих карт.
Примечание
Беси может играть следующие straight: 1-5 1-2 4-5 2-2 (2 штуки) 5-5 Всего 6, чтобы избавится от всех карт.
Taxi#89875

Беси открыла такси-сервис для других коров на ферме. Коровы собрались в различных местах вдоль изгороди длины M (1<=M<=1,000,000,000) и каждая хочет переместиться в некоторое другое место вдоль изгороди. Беси должна подобрать корову в том месте, где она находится и отвезти в то место, куда она хочет.
Автомобиль Беси маленький и за раз может возить только одну корову. Коровы могут входить машину и выходить из нее мгновенно.
Беси хочет минимизировать расстояние проезда. Вам даны стартовые и финишные позиции N коров (1 <= N <= 100,000), определите минимальное количество езды, которое должна выполнить Беси. Беси поняла, что иногда выгодно высаживать корову не в позиции ее назначения.
Беси начинает в самой левой точке изгороди - позиции 0 и и должна закончить свое путешествие в самой правой точке - в позиции M.
PROBLEM NAME: taxi
Формат входных данных
* Cтрока 1: N и M разделенные пробелом
* Строки 2..1+N: (i+1)-ая строка содержит два разделенных пробелом целых числа, si и ti (0 <= si, ti <= M), указывающих стартовую и конечную позиции i-ой коровы.

Формат выходных данных
* Строка 1: Одно целое число, указывающее общее расстояние, которое проедет Беси. Заметим, что результат может не поместиться в 32-битное целое.


Примечание
Беси возьмет первую корову в позиции 0 и перевезет ее на позицию 6. Здесь она высадит первую корову и возьмет вторую корову, отвезет куда ей надо, а потом поедет к концу изгороди.

У Фермера Джона есть N (1 <= N <= 10,000) коров, которых нужно подоить.
Каждая дойка занимает ровно одну единицу времени.

Некоторые коровы не любя долго ждать дойки.
Точнее корова I производит gi галлонов молока (1<=gi<=1000),
но только если её подоить до её дед-лайна – di (1<=di<=10,000).
Время начинается в момент t=0.
Поэтому не более x коров может быть подоено до дед-лайна t=x.

Помогите ФД определить максимальное количество молока,
которое он может получить, если установить оптимальный порядок дойки коров.

PROBLEM NAME: msched

Формат входных данных

* Строка 1: Значение N.

* Строки 2..1+N: Строка i+1 содержит целые числа gi и di.

Формат выходных данных

* Строка 1: Максимальное количество галлонов молока, которое может
получить ФД

Примечание

ФД сначал подоит корову 3, не будет доить корову 4, поскольку её
дед-лайн конфликтует с коровой 3. Затем ФД подоит коров 1 и 2.


Фермер Джон строит сад. Сад состоит из последовательности из N цветочниц (1 <= N <= 100). Каждая цветочница изначально содержит Ai цветов. ФД хочет изменить сад таким образом, чтобы каждая цветочница стала содержать Bi цветов. Ai и Bi - числа от 0 до 10.
ФД может делать следующее - купить цветок за X долларов и добавить его в любую цветочницу - убрать цветок из любой цветочницы и это стоит Y долларов - переместить цветок из цветочницы i в цветочницу j за цену Z * abs(i-j) долларов
Вычислите минимальную цену выполнения реорганизации сада.

PROBLEM NAME: landscape
Формат входных данных
* Строка 1: Разделенные пробелом целые числа N, X, Y, Z (0 <= X, Y, Z <= 1000).
* Строки 2..1+N: Строка i+1 содержит разделенные пробелом целые числа Ai и Bi.
Формат выходных данных
* Строка 1: Одно целое число - минимальная стоимость реорганизации сада.


Примечание
Один цветок нужно продать (с цветочницы 4), за цену 200. Остальные цветки можно переместить за цену 10 (3 цветка с цветочницы 4 на цветочницу 1 и 1 цветок с цветочницы 3 на цветочницу 2)


Фермер Джон обнаружил, что его коровы дают больше молока, если занимаются спортом. Поэтому он послал N (1 <= N <= 25,000) своих коров взобраться на ближайшую гору и вернуться обратно.
Корове I требуется U(i) времени взобраться на гору и D(i) времени, чтобы спуститься с нее. Каждой корове нужна помощь человека, а их всего два ФД и его кузен фермер Дон (ФДо). ФД будет помогать коровам подниматься, а ФДо - спускаться. Поэтому в любой момент времени только одна корова будет подыматься (с помощью ФД) и не более одной коровы - спускаться (с помощью ФДо).
Группа коров может временно находится на вершине горы, если они туда взобрались, и ждут помощи от ФДо чтобы спуститься. Коровы могут спускаться в порядке, отличном от того, в котором они подымались.
Определите минимальное количество времени, которое требуется всем коровам, чтобы совершить полное путешествие туда и обратно.
PROBLEM NAME: climb
Формат входных данных
* Строка 1: Количество коров, N.
* Строки 2..1+N: Строка i+1 содержит два разделенных пробелом целых числа: U(i) и D(i). (1 <= U(i), D(i) <= 50,000).
Формат выходных данных
* Строка 1: Одно целое число, представляющее минимальное количество времени, которое требуется всем коровам взобраться на гору и вернуться обратно.
Примечание
Если корова 3 пойдет первой, затем корова 1 и затем корова 2 (и в таком же порядке возвращаться), это и даст суммарное время 17.
Gifts#89824

Фермер Джон хочет сделать подарки своим N (1 <= N <= 1000) коровам, используя свой бюджет в B (1 <= B <= 1,000,000,000) единиц денег.
Корова I требует подарка с ценой P(i) единиц ценой доставки S(i) (поэтому для ФД будет стоить P(i)+S(i) заказать этот подарок). У ФД есть специальный купон, который он может использовать чтобы заказать подарок за полцены. Если ФД использует этот купон для коровы I, то он должен будет заплатить только P(i)/2 + S(i). По соглашению, все P(i) четные числа.
Пожалуйста, помогите ФД определить максимальное количество коров, которым он сможет сделать подарки.
PROBLEM NAME: gifts
Формат входных данных
* Строка 1: Два разделенных пробелом целых числа, N и B.
* Строки 2..1+N: Строка i+1 содержит два разделенных пробелом целых числа, P(i) и S(i). (0 <= P(i),S(i) <= 1,000,000,000, P(i)- четное)
Формат выходных данных
* Строка 1: Максимальное количество коров, которым ФД может купить подарки.
Примечание
ФД может купить подарки для коров с первой по 4-ую, если он использует Купон для коровы 3. Потраченная сумма будет: (4+2)+(2+0)+(4+1)+(6+3) = 22. Заметим, что ФД альтернативно может использовать купон для коров 1 или 4 И все равно не превысить бюджет.
Поделиться
Класснуть