Информатика

7 592 задачивместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.

Дана последовательность целых чисел (могут быть отрицательные). Найдите сумму тех элементов, запись абсолютного значения которых в 5-ричной системе оканчивается на 2.

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

В первой строке -- количество чисел N (1 ≤ N ≤ 1000). В следующих N строках -- по одному целому числу (по модулю не более 10000).

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

Одно число -- сумма. Если подходящих нет -- выведите 0.

Примечание

Число подходит, если |число| mod 5 == 2. Например: |−7| = 7, 7 mod 5 = 2.

Дана последовательность натуральных чисел, оканчивающаяся нулём. Подсчитайте, сколько из них в шестнадцатеричной записи являются трёхзначными и оканчиваются на D.

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

Последовательность натуральных чисел (не более 10000), каждое в отдельной строке, завершается нулём.

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

Одно число -- количество.

Примечание

Трёхзначное hex-число: от 10016=256 до FFF16=4095. Цифра D16=1310, последняя цифра = остаток от деления на 16.

Фитнес-браслет фиксирует время начала каждой тренировки и её длительность. Вечерней считается тренировка, начавшаяся в 18:00 или позже. Определите суммарную длительность вечерних тренировок.

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

Каждая строка содержит четыре целых числа: часы и минуты начала тренировки, затем часы и минуты её длительности. Последовательность заканчивается строкой «0 0 0 0».

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

Два числа через пробел — суммарная длительность вечерних тренировок в часах и минутах. Если вечерних тренировок нет — вывести «0 0».

Пусть M — сумма минимального и максимального простых натуральных делителей целого числа (не считая 1 и само число). Если таких делителей нет, M = 0.

Напишите программу, которая перебирает целые числа, меньшие 12 987 654, в порядке убывания и ищет среди них те, для которых M > 80 000 и оканчивается на 4.

В ответе запишите шесть строк: в каждой строке — найденное число и соответствующее значение M через пробел. Строки в порядке убывания найденных чисел.

Например, для числа 20: M = 2 + 5 = 7.

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

Шесть строк, в каждой — два числа через пробел: найденное число и M.

Будучи фанатом современной архитектуры, Фермер Джон построил новый амбар в форме круга. Внутри амбар составляет кольцо из \(n\) комнат, пронумерованных по часовой стрелке \(1 \ldots n\) по периметру (\(3 \leq n \leq 100,000\)). Каждая комната имеет двери в две соседние комнаты, а также дверь из амбара во внешний мир.

У ФД есть ровно \(n\) коров, и он хочет поместить по одной корове в каждую комнату. Однако своенравные коровы выстроились не как нужно, и возможно несколько коров собрались у одной внешней двери. А именно, \(c_i\) коров стоит перед дверью с номером \(i\). Разумеется, \(\сумма c_i = n\).

Чтобы коровы добрались до своих мест ФД собирается применить следующий подход: каждая корова входит в дверь, перед которой она стоит и идёт по часовой стрелке в свою комнату. В предположении, что проход коровы через \(d\) дверей отнимает у неё \(d^2\) энергии, определите минимальное количество энергии, которое требуется, чтобы распределить коров по одной в комнату.

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

Первая строка ввода содержит \(n\). Оставшиеся \(n\) строк содержат \(c_1 \ldots c_n\).

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

Выведите минимальное количество энергии, потреблённое всеми коровами.

Фермер Джон купил подписку журнала Good Hooveskeeping для своих коров, теперь им есть что почитать. К несчастью, последний номер содержит довольно неподходящую статью, как приготовить совершенный бифштекс. ФД хочет чтобы его коровы не увидели эту статью.

ФД взял текст из журнала и создал строку S длиной не более чем 10^6 символов. Из неё он хочет удалить все вхождения подстроки T длиной <= 100 символов неподходящего содержания. Чтобы сделать это, ФД ищет первое вхождение T в S и удаляет его. Затем он повторяет процесс опять, снова удаляя первое вхождение T, продолжая так до тех пор, пока больше не станет вхождений T в S. Заметим, что удаление одного вхождения может создать другое вхождение, которое не существовало раньше.

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

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

Первая строка содержит S. Вторая строка будет содержать T. Длина T не более чем длина S, и все символы S и T - маленькие латинские буквы (a..z).

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

Строка S после завершения всех удалений. Гарантируется, что S не станет пустой после завершения процесса всех удалений.

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

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

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

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

Первая строка ввода содержит число \(N\).

Оставшиеся \(N\) строк содержат жесты ФД, представленные символами H, P, S.

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

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

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

Амбар описывается простым (несамопересекающимся) многоугольником с целочисленными вершинами \((x_1, y_1) \ldots (x_n, y_n)\) перечисленными в порядке обхода по часовой стрелке. Его рёбра составляются чередующимися горизонтальными (параллельными оси Х) и вертикальными (параллельными оси Y) отрезками. Первое ребро может быть как горизонтальным, так и вертикальным. Выход расположен в точке \((x_1, y_1)\). Беси начинает в некоторой вершине \((x_i, y_i)\) для \(i > 1\). Она идёт только по периметру амбара, по часовой стрелке или против часовой стрелки, потенциально изменяя направления движения, в любой вершине. Её цель - пройти минимальное расстояние и добраться до выхода. Это довольно просто, когда свет включён - просто выбрать между движением по часовой стрелке и движением против часовой стрелки.

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

Помогите Беси определить минимальное количество, на которое возрастёт её путь в худшем случае при движении в темноте, по сравнению с движением при свете, полагая, что она движется оптимально в каждом случае. Оптимальная стратегия - такая, которая минимизирует увеличение расстояния в худшем случае.

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

Первая строка ввода содержит \(N\) (\(4 \leq N \leq 200\)). Каждая из последующих \(N\) строк содержит по два целых числа, описывающих точки \((x_i, y_i)\) в почасовом порядке обхода. Все целые числа \(-100,000 \ldots 100,000\).

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

Минимально возможное для худшего случая увеличение длины оптимального пути при походе в темноте по сравнению с походом при свете.

Fort Moo#90384
Беси строит форт прямоугольной формы.

Она уже выбрала место - кусок земли \(N\) метров по \(M\) метров (\(1 \leq N, M \leq 200\)). К несчастью, на этом месте есть болотистые участки, на которых строительство невозможно. Помогите Беси определить наибольшую (по площади) область, на которой можно построить форт, так , чтобы форт не проходил через болотистые участки.

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

Строка 1 содержит целые числа \(N\) и \(M\).

Следующие \(N\) строк содержат по \(M\) символов, формируя решётку, описывающую выбранное место. Символ '.' представляет траву, а символ 'X' представляет болотистую местность.

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

Единственное целое число, представляющее максимальную площадь, которую Беси может покрыть своим фортом.

Фермер Джон разместил свои \(N\) (\(1 \leq N \leq 100,000\)) стогов сена в различных точках одномерной дороги вдоль его фермы. Вам требуется ответить на \(Q\) (\(1 \leq Q \leq 100,000\)) запросов, о том сколько стогов сена находится внутри указанного участка дороги.

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

Первая строка содержит \(N\) и \(Q\).

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

Каждая из последующих \(Q\) строк содержит два целых числа \(A\) и \(B\) (\(0 \leq A \leq B \leq 1,000,000,000\)) задающих запрос на количество стогов сена между \(A\) и \(B\), включительно.

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

Вы должны вывести \(Q\) строк. Для каждого запроса выведите количество стогов сена в соответствующем интервале.

Moocast#90361
\(N\) (\(1 \leq N \leq 1000\)) коров Фермера Джона хотят организовать безопасную систему для передачи важных сообщений.

Они купили по одной "воки-токи" для каждой коровы. Каждая такая "воки-токи" имеет ограниченный радиус передачи информации. Но коровы могут передавать сообщения "по эстафете", поэтому нет необходимости для каждой коровы иметь возможность передавать сообщения непосредственно любой другой корове.

Коровам нужно решить сколько денег необходимо потратить на "воки-токи". Если они потратят \$X, они получат "воки-токи", способно передавать на расстояние до \(\sqrt{X}\). То есть, квадрат расстояния между коровами стоит не более \(X\) чтобы обеспечить их коммуникацией.

Помогите коровам определить минимальное целое \(X\) такое, что сообщение от любой коровы сможет достичь любой другой коровы.

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

Первая строка ввода содержит \(N\).

Каждая из \(N\) последующих строк содержит \(x\) и \(y\) координаты одной коровы. И то и другое - целое в интервале \(0 \ldots 25,000\).

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

Напишите в одну строку целое \(X\) - минимальное количество денег, которое коровы должны потратить на "воки-токи"

Беси и её подружки играют в супергероев. Все знают, что каждый супергерой имеет сигнал, призывающий его к действию. Беси нарисовала специальный сигнал на листке бумаги размером \(M \times N\) (\(1 \leq M \leq 10, 1 \leq N \leq 10\)), но он получился очень маленький. Беси хочет его увеличить ровно в K (\(1 \leq K \leq 10\)) раз в каждом направлении.

Этот сигнал состоит только из символов '.' и 'X'.

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

Первая строка ввода содержит \(M\), \(N\), \(K\), разделённые одиночными пробелами.

Каждая из следующих \(M\) строк содержит строку символов длиной \(N\). Все вместе они и описывают сигнал.

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

Вы должны вывести \(KM\) строк, каждая с \(KN\) символами, представляющими картинку увеличенного сигнала.

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

Помогите ФД вычислить минимальную площадь, которую станет занимать его новое пастбище (покрывающее два исходных прямоугольника).

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

Первая строка входного файла описывает одно из оригинальных прямоугольных пастбищ четырьмя целыми числами, разделённых одиночными пробелами \(x_1\) \(y_1\) \(x_2\) \(y_2\) (все числа в диапазоне \(0 \ldots 10\)). Левый нижний угол пастбища – точка \((x_1, y_1)\), правый верхний угол – точка \((x_2, y_2)\), причём \(x_2 > x_1\) и \(y_2 > y_1\).

Вторая строка ввода аналогичным образом описывает второе прямоугольное пастбище. Оно не пересекается с первым и не касается его.

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

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

Корова Беси - фанат карточных игр. Однако у неё нет достойных противников. Все они играют в полностью предсказуемой манере. Однако надо ещё придумать, как выиграть у них.

Беси и Эльза играют в простую карточную игру, в которой имеется колода из \(2N\) карт, последовательно пронумерованных \(1 \ldots 2N\). Они делят её поровну - \(N\) карт Беси и \(N\) карт Эльзе. Затем они играют \(N\) раундов, в каждом из которых Беси и Эльза выкладывают по одной карте, и тот, у кого карта больше, зарабатывает очко.

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

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

Первая строка ввода содержит значение N (\(1 \leq N \leq 50,000\)).

Следующие N строк содержат карты, которыми будет играть в каждом из последующих раундов игры. Заметим, что из этой информации легко определить карты, которые на руках у Беси.

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

Выведите в одной строке максимальное количество очков, которое может заработать Беси.

Беси и Эльза играютв простую карточную игру. Берётся колода из \(2N\) карт, последовательно пронумерованных \(1 \ldots 2N\), и делится на две части по \(N\) карт для Беси и \(N\) карт для Эльзы. Затем они играют \(N\) раундов, в каждом из которых Беси и Эльза выкладывают по одной карте. Изначально, одно очко за каждый раунд выигрывает игрок, у которого карта больше. Однако однажды за всю игру Беси может переключить правила игры так, что до конца игры выигрывать одно очко за раунд будет игрок, карта которого меньше. Беси может также выбрать не использовать эту опцию, оставляя на всю игру правило "выигрывает бОльшая карта" или она может включить это правило перед первыми раундом, и тогда вся игра ведётся по правилу "выигрывает меньшая карта".

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

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

Первая строка ввода содержит значение N (\(2 \leq N \leq 50,000\)).

Следующие N строк содержат карты которым играет Эльзав том порядке как она их будет выкладывать в последовательных раундах игры. Заметим, что по этой информации легко определить, какие карты на руках у Беси.

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

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

Marathon#90328

Фермер Джон отправил Беси на марафон.
Дистанция включает N (3 <= N <= 100,000) контрольных пунктов,
которые нужно посетить поочерёдно, от 1 до N.
Ленивая Беси решила пропустить один контрольный пункт
(не 1 и не N разумеется).

Помогите Беси найти минимальное расстояние, которое ей придётся
пробежать, если она пропустит один контрольный пункт.

Замечание: расстояние между двумя точками (x1,y1) и (x2,y2)
надо рассматривать и вычислять как манхэттенское
|x1-x2| + |y1-y2|,
поскольку во время этого марафона двигаться можно только
параллельно осям координат.

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

Первая строка даёт значение N.

Каждая из последующих N строк содержит два разделённых
пробелом целых числа X и Y (-1000 <= x <= 1000, -1000 <= y <= 1000),
представляющих контрольный пункт.

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

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

Когда Беси пропускает контрольную точку, она пропускает её,
а не все контрольные точки, расположенные в этой позиции.

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

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

В приведенном примере, пропустив точку(8,3) получим
минимальное расстояние 14.

Пример вывода

14

Nap Sort#90264

Беси сортирует массив целых чисел собственным алгоритмом. У неё есть куча из \(N\) \((1 \leq N \leq 2\cdot 10^5)\) целых чисел \(a_1,a_2,\dots,a_N\) \((1 \leq a_i \leq 10^{11})\), которые она хочет перенести в другой массив в отсортированном порядке. Она постоянно ищет минимальный элемент в куче, удаляет его и добавляет в конец массива. Беси требуется \(p\) секунд, чтобы найти минимальный элемент в куче из \(p\) целых чисел.

ФД выделил Беси в помощь неограниченное количество коров. Беси использует их следующим образом. Она разделила все свои целые числа на две кучи: куча Беси и куча Помощниц. Для каждого числа в своей куче она выполняет алгоритм как обычно. Для каждого целого числа в куче Помощниц Беси назначает его отдельной корове. И предлагает ей поступать так. Когда корова помощница получает число \(a_i\), она должна подождать \(a_i\) секунд и затем добавить это число в конец массива. Если Беси и корова-помощница добавляют число в одно и то же время, то сначала добавляется число Беси. Если нескольким коровам-помощницам было дано одно и то же число, они добавляют копии этого числа в одно и то же время.

Помогите Беси поделить её числа так, чтобы финальный массив был отсортирован, а время сортировки было минимально.

ФОРМАТ ВВОДА (с клавиатуры / stdin):

Первая строка содержит число \(T\), количество независимых подтестов. (\(1\le T\le 10\)).

Каждый подтест имеет такую структуру:

Первая строка содержит \(N\) - количество целых чисел в массиве Беси.

Следующая строка содержит \(a_1, a_2, \dots, a_N\), - целые числа, которые сортирует Беси. Некоторые целые числа могут появится множество раз.

Гарантируется, что сумма всех \(N\) по всем подтестам не превысит \(2\cdot 10^5\).

ФОРМАТ ВЫВОДА (на экран / stdout):

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

У Фермера Джона важная задача - решить какой тип сена купить для своих коров.

У Фермера Джона есть \(N\) коров (\(2 \le N \le 10^5\)) пронумерованных от \(1\) до \(N\). Каждая корова любит ровно один тип сена \(h_i\) (\(1 \le h_i \le N\)). ФД хочет, чтобы все его коровы любили один тип сена.

Чтобы это случилось, ФД может сформировать фокус-группы. Фокус-группа состоит из всех коров в непрерывном интервале от \(i\) до \(j\), включительно. Если в фокус-группе более половины коров любит один и тот же некоторый тип сена, то все коровы начинают любить этот тип сена, иначе ни у одной коровы не изменяется любимый тип сена. Например, если фокус группа состоит из 16 коров, 9 или более из которых любят один и тот же тип сена, то и остальные 7 коров теперь будут любить этот же тип сена.

ФД хочет узнать, какие типы сена могут стать любимыми всем коровами. В один момент времени он может создать только одну фокус группу, но он может последовательно создавать сколько угодно фокус-групп, чтобы все коровы полюбили один и тот же тип сена.

ФОРМАТ ВВОДА (с клавиатуры / stdin):

Сначала идёт одно целое число \(T\), которое обозначает количество независимых тестов \((1 \leq T \leq 10)\).

Первая строка каждого теста содержит число \(N\).

Вторая строка каждого теста состоит из \(N\) целых чисел, любимых типов сена \(h_i\), в порядке номеров коров.

Гарантируется, что сумма \(N\) во всех тестах не превысит \(2\cdot 10^5\).

ФОРМАТ ВЫВОДА (на экран / stdout):

Выведите \(T\) строк, по одной для каждого теста.

Если возможно сделать, чтобы все коровы полюбили один и тот же тип сена, выведите все такие возможные типы сена в порядке возрастания. Иначе, выведите \(-1\). Когда выводите список чисел, выводите соседние числа через один пробел, и в конце этой строки не должно быть пробелов.

Moorbles#90257

Беси и Эльза играют с шариками так: Беси и Эльза начинают игру с некоторым количеством шариков. Беси берёт \(A\) шариков из своих, а Эльза должна угадать является ли число \(A\) чётным или нечётным. Если Эльза угадает, она забирает эти \(A\) шариков, если нет - она отдаёт \(A\) своих шариков Беси. Если у Эльзы нет \(A\) шариков - она проиграла. Игрок проиграл, если остался без шариков.

После нескольких этапов игры, у Эльзы осталось \(N\) \((1 \leq N \leq 10^9)\) шариков. Она думает, что ей тяжело выиграть, она играет, чтобы не проиграть. Она хорошо изучила привычки Беси и заметила, что на \(i\)-ом ходу есть только \(K\) \((1 \leq K \leq 4)\) различных количеств шариков, которые может предложить Беси. Проходит всего только \(M\) \((1 \leq M \leq 3 \cdot 10^5)\) ходов прежде, чем Беси надоест, и она перестанет играть. Можете ли Вы определить лексикографически минимальную последовательность ходов такую, чтобы Эльза не проиграла вне зависимости от ходов Беси.

ФОРМАТ ВВОДА (с клавиатуры / stdin):

Первая строка содержит целое число \(T\) (\(1 \leq T \leq 10\)) представляющее количество подтестов. Каждый подтест описывается следующим образом:
  • Сначала идёт строка, содержащая три целых числа \(N\), \(M\), \(K\), представляющая количество шариков у Эльзы, количество ходов, и количество потенциальных ходов, которые может сделать Беси, соответственно.
  • Затем идут \(M\) строк, где строка \(i\) содержит \(K\) различных разделённых одиночными пробелами целых чисел \(a_{i,1} \; a_{i,2} \ldots a_{i,K}\) (\(1 \leq a_{i, j} \leq 10^3\)) представляющих возможные количества шариков, которые Беси может выложить на \(i\)-ом ходу.
Гарантируется. что сумма \(M\) по всем подтестам не более \(3 \cdot 10^5\).

ФОРМАТ ВЫВОДА (на экран / stdout):

Для каждого подтеста выведите лексикографически минимальную последовательность ходов Эльзы, которая гарантирует, что Эльза не проиграет или \(-1\), если Эльза проиграет. Последовательность ходов должна быть на одной строке и состоять из разделённых одиночными пробелами токенов, каждый из которых равен либо "Even" либо "Odd".

Замечание: "Even" лексикографически меньше чем "Odd".

Milk Sum#90233

**Примечание. Ограничение по времени для этой задачи – 4 секунды, что в 2 раза больше, чем по умолчанию.**

\(N\) коров фермера Джона (\(1\le N\le 1,5\cdot 10^5\)) имеют целую продуктивность \(a_1,\dots,a_N\). То есть \(i\)я корова производит \(a_i\) единиц молока за минуту ( \(0 \leq a_i \leq 10^8\)).

Каждое утро фермер Джон начинает с того, что все \(N\) коров подключены к его дойке. От него требуется отцеплять их по одной, отправляя прочь для их ежедневных упражнений. Первая корова, которую он отправляет, снимается с крючка после всего 1 минуты дойки, вторая корова, которую он отправляет, отцепляется после двух минут дойки и так далее. Поскольку первая корова (скажем, корова \(x\)) тратит только одну минуту на доильном аппарате она вносит только \(a_x\) единиц общего количества молока. Вторая корова (скажем, корова \(y\)) тратит на доение всего две минуты и, таким образом, дает \(2a_y\) единиц общего количества молока. Третья корова (скажем, корова \(z\)) приносит всего \(3a_z\) единиц и так далее. Пусть \(T\) представляет собой максимально возможное количество молока, которое может собрать фермер Джон, если он отцепляет своих коров в оптимальном порядке.

Фермеру Джону интересно, как повлияет на \(T\), если часть производительностей молока в его стаде были другими. Для каждого из запросов \(Q\) (\(1\le Q\le 1.5\cdot 10^5\)) каждое из которых задано двумя целыми числами \(i\) и \(j\), пожалуйста, рассчитайте, какой будет новое значение \(T\), если \(a_i\) было установлено в \(j\) (\(0 \leq j \leq 10^8\)). Обратите внимание, что каждый запрос рассматривает временное потенциальное изменение независимо от всех других запросов; то есть \(a_i\) возвращается к исходному значению перед следующим запросом.

ФОРМАТ ВВОДА (ввод поступает с терминала/стандартного ввода):

Первая строка содержит \(N\).

Вторая строка содержит \(a_1\dots a_N\).

Третья строка содержит \(Q\).

Следующие \(Q\) строк содержат по два целых числа \(i\) и \(j\), разделенных пробелом.

ФОРМАТ ВЫВОДА (вывод на терминал / стандартный вывод):

Пожалуйста, выведите значение \(T\) для каждого из запросов \(Q\) в отдельных строках.

Поделиться
Класснуть