Вы находитесь на странице: 1из 7

12-й открытый турнир по программированию в Абакане

Россия, г. Абакан, 30.03.2019

Задача A. Овощи
Имя входного файла: стандартный ввод
Имя выходного файла: стандартный вывод
Ограничение по времени: 1 секунда
Ограничение по памяти: 256 мегабайт
Фермер Джон очень любит выращивать овощи. Но есть их любит далеко не все, потому что
некоторые овощи невкусные и понижают настроение, хотя некоторые наоборот — повышают.
Сейчас Джону нужно съесть блюдо, составленное из двух видов овощей. Блюдо содержит A
грамм первого и B грамм второго вида. Джон знает, как меняет его настроение один грамм каждого
овоща — первого на X, а второго на Y е. н. (единиц настроения).
Джон — фермер и не силён в сложных вычислениях, помогите вычислить на сколько измениться
его настроение после того, как он съест блюдо.
Формат входных данных
Первая строка содержит два целых числа A и B (1 ⩽ A, B ⩽ 30 000).
Во второй строке содержатся два целых числа X и Y (−30 000 ⩽ X, Y ⩽ 30 000).
Формат выходных данных
Выведите единственное целое число — на сколько е. н. измениться настроение Джона.
Примеры
стандартный ввод стандартный вывод
2 3 1
2 -1
1 1 -1
1 -2

Страница 1 из 7
12-й открытый турнир по программированию в Абакане
Россия, г. Абакан, 30.03.2019

Задача B. Таблица результатов


Имя входного файла: стандартный ввод
Имя выходного файла: стандартный вывод
Ограничение по времени: 2 секунды
Ограничение по памяти: 256 мегабайт
От вас требуется вывести таблицу результатов для списка участников и набранных ими очков.
Участники должны быть упорядочены по не возрастанию набранных очков. Участники, имею-
щие одинаковое количество очков, упорядочиваются по лексикографическому порядку имени, при-
чём регистр букв при сравнении игнорируется.
Смотрите описание формата вывода и пример для большей информации.
Формат входных данных
Первая строка содержит целое число n — количество участников (1 ⩽ n ⩽ 50 000).
В следующих n строках содержится namei и pi — имя участника и количество набранных им
очков, записанные через пробел. pi — целое неотрицательное число, не превосходящее 106 .
Имя участника состоит только из букв латинского алфавита и имеет длину от 1 до 20. Гаранти-
руется, что все имена различны.
Формат выходных данных
Выведите таблицу результатов, состоящую из трёх столбцов.
Первый столбец должен иметь заголовок «Place». В нём отображаются места, которые занимают
участники. Если несколько участников имеют одинаковое количество очков, то они разделяют общее
место, которое отображается как диапазон. Смотрите пример для понимания.
Второй столбец имеет заголовок «Name» и служит для отображения имени, второй — «Score»,
для отображения очков участника.
Ширина каждого столбца должна быть равна длине максимальной ячейки этого столбца.
Первый столбец должен быть выровнен по правому краю, остальные два — по левому.
Пустоты в ячейках следует заполнять символом «.» (точка).
Границы ячеек обозначаются символом «|» (ASCII-код 124)
Пример
стандартный ввод стандартный вывод
8 |Place|Name...|Score|
Petr 100 |....1|Bredor.|9999.|
tourist 100 |..2-3|Petr...|100..|
Bredor 9999 |..2-3|tourist|100..|
dZ 5 |....4|user...|33...|
dx 5 |..5-7|dx.....|5....|
Dy 5 |..5-7|Dy.....|5....|
pressF 0 |..5-7|dZ.....|5....|
user 33 |....8|pressF.|0....|

Страница 2 из 7
12-й открытый турнир по программированию в Абакане
Россия, г. Абакан, 30.03.2019

Задача C. Changelog generator


Имя входного файла: стандартный ввод
Имя выходного файла: стандартный вывод
Ограничение по времени: 1 секунда
Ограничение по памяти: 256 мегабайт
В одной известной компьютерной игре часто выходят обновления — патчи. Каждый патч содер-
жит ряд изменений каких-то параметров какой-то способности какого-то героя...
Типичный патч может содержать сотни таких изменений, которые записаны в машинном ко-
де. Для текстового описания патча требуется показать эти изменения, сопровождая человеческим
языком. Заниматься этим вручную чревато ошибками, поэтому процесс нужно автоматизировать.
Пусть одно изменение затронуло n параметров, которые до патча имели значения a1 , a2 , ..., an ,
а после патча стали b1 , b2 , ..., bn . Значения всегда являются целыми числами. Вам необходимо опре-
делить, что произошло с параметрами, а именно:

• «Unchanged» — каждый параметр остался прежним.

• «Increased» — каждый параметр либо увеличился, либо остался неизменным.

• «Reduced» — каждый параметр либо уменьшился, либо остался неизменным.

• «Rescaled» — параметры потерпели изменения, но не подходящие под критерии выше.

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


Первая строка содержит целое число n — количество параметров (1 ⩽ n ⩽ 1 000).
Вторая строка содержит n целых чисел ai — старые значения параметров.
В третьей строке содержится n целых чисел bi — новые значения параметров.
0 ⩽ ai , bi ⩽ 109 .
Формат выходных данных
Выведите одно из слов, описанных выше, характеризующее тип изменения.
Примеры
стандартный ввод стандартный вывод
4 Reduced
55 50 45 40
50 45 40 35
3 Increased
550 675 800
600 700 800
4 Rescaled
50 55 60 65
40 50 60 70
3 Unchanged
3 1 2
3 1 2

Страница 3 из 7
12-й открытый турнир по программированию в Абакане
Россия, г. Абакан, 30.03.2019

Задача D. Маленький Декарт


Имя входного файла: стандартный ввод
Имя выходного файла: стандартный вывод
Ограничение по времени: 1 секунда
Ограничение по памяти: 256 мегабайт
Маленький Декарт получил в подарок последовательность целых чисел от 1 до n, расположенных
так, что число i стоит на i-м месте.
Не понятно от чего, Декарту сразу захотелось брать отрезки внутри последовательности и что-
нибудь с ними делать. Быстро обнаружилось, что маленький Декарт умеет только два типа дей-
ствий:

• «reverse i j» — перевернуть порядок чисел, которые находятся в отрезке с i по j.

• «inverse i j» — умножить каждое число с отрезка от i до j на −1.

В обоих случаях 1 ⩽ i ⩽ j ⩽ n.
Так Декарт провёл все выходные, о чём рассказал своему другу Поликарпу. Маленький Декарт
записал все действия в порядке их применения к последовательности и показал Поликарпу. Если
Поликарп правильно скажет, какое число стоит на месте pos после всех операций, то Декарт даст
ему последовательность на выходные.
Поликарп очень хочет поиграть с числами, но увидев большой список он побледнел. Поэтому он
просит вас о помощи — по списку операций определите число на требуемой позиции.
Формат входных данных
В первой строке содержатся два целых числа n и m — количество чисел в последовательности
и количество действий (1 ⩽ n ⩽ 109 ; 0 ⩽ m ⩽ 105 ).
В каждой из следующих m строках содержится описание очередного действия.
В последней строке содержится целое число pos (1 ⩽ pos ⩽ n).
Формат выходных данных
Выведите число, которое находится на месте pos после всех действий.
Примеры
стандартный ввод стандартный вывод
5 4 1
inverse 1 3
reverse 2 5
reverse 1 3
inverse 2 4
3
3 2 -1
reverse 1 2
inverse 2 3
2
3 2 3
inverse 1 2
reverse 2 3
2

Замечание
В первом примере последовательность меняется следующим образом:
(1, 2, 3, 4, 5) → (−1, −2, −3, 4, 5) → (−1, 5, 4, −3, −2) → (4, 5, −1, −3, −2) → (4, −5, 1, 3, −2)

Страница 4 из 7
12-й открытый турнир по программированию в Абакане
Россия, г. Абакан, 30.03.2019

Задача E. Тройники
Имя входного файла: стандартный ввод
Имя выходного файла: стандартный вывод
Ограничение по времени: 1 секунда
Ограничение по памяти: 256 мегабайт
Вы компанией из n человек заселились в комнату с двумя розетками. У каждого человека есть
ноутбук, которому необходимо электричество.
У вас уже суммарно есть k тройников (электрических разветвителей на три розетки). Каждый
тройник можно подключить или в розетку или в другой тройник.
Какое минимальное количество дополнительных тройников нужно приобрести, чтобы обеспе-
чить каждый ноутбук электричеством?
Формат входных данных
В единственной строке содержатся два целых числа n и k.
1 ⩽ n ⩽ 109 .
0 ⩽ k ⩽ 109 .
Формат выходных данных
Выведите единственное число — ответ на задачу.
Примеры
стандартный ввод стандартный вывод
6 0 2
3 1 0

Страница 5 из 7
12-й открытый турнир по программированию в Абакане
Россия, г. Абакан, 30.03.2019

Задача F. Сигнатура
Имя входного файла: стандартный ввод
Имя выходного файла: стандартный вывод
Ограничение по времени: 2 секунды
Ограничение по памяти: 256 мегабайт
Рассмотрим последовательность целых положительных чисел ai .
Выделим блоки подряд идущих одинаковых чисел и запишем размеры этих блоков, сохраняя
порядок. Полученную последовательность bj будем называть сигнатурой последовательности ai .
Например, сигнатурой последовательности [1, 1, 2, 6, 6, 6, 1] является [2, 1, 3, 1].
Вам поступил заказ на создание последовательности по заданной сигнатуре. Дополнительно,
заказчик хочет, чтобы сумма элементов полученной последовательности была как можно меньше.
Формат входных данных
Первая строка содержит целое число n — размер сигнатуры (1 ⩽ n ⩽ 105 ).
Вторая строка содержит n целых положительных чисел bk , сумма которых не превосходит 106 .
Формат выходных данных
В единственную строку выведите требуемую последовательность целых положительных чисел,
разделяя их пробелами.
Если ответов с минимальной суммой несколько, разрешается вывести любой.
Пример
стандартный ввод стандартный вывод
3 1 2 2 1 1 1
1 2 3

Страница 6 из 7
12-й открытый турнир по программированию в Абакане
Россия, г. Абакан, 30.03.2019

Задача G. Пирог
Имя входного файла: стандартный ввод
Имя выходного файла: стандартный вывод
Ограничение по времени: 1 секунда
Ограничение по памяти: 256 мегабайт
К Вам пришло четверо гостей отведать пирог. Пирог является прямоугольником со сторонами
A и B. Вам нужно разрезать его на четверых, сами вы будете лишь наблюдать за его поеданием.
Гости оказались привередливыми и требуют, чтобы Вы разрезали пирог определённым способом.
А именно: зафиксировать точку внутри прямоугольника и сделать четыре разреза от этой точки до
каждого угла прямоугольника. Таким образом, пирог разделится на четыре треугольных куска.
Но, этого оказалось мало! Каждый гость хочет кусок определённого размера, а именно, i-й гость
хочет pi процентов пирога.
Вам необходимо определить, можно ли найти такую точку внутри пирога, которая разделит
пирог на четыре части так, как хотят этого гости. Или сообщить, что такой точки нет.
Будем считать, что левый-нижний угол пирога имеет координаты (0, 0), а правый-верхний (A, B).
Точка задаётся координатами (X, Y ) так, что 0 ⩽ X ⩽ A и 0 ⩽ Y ⩽ B.
Формат входных данных
В первой строке содержатся два целых числа A и B (1 ⩽ A, B ⩽ 100).
Вторая стока содержит четыре целых числа p1 , p2 , p3 и p4 (1 ⩽ pi ⩽ 99; p1 + p2 + p3 + p4 = 100).
Формат выходных данных
Если пирог невозможно разрезать требуемым способом, то выведите «NO».
Иначе в первую строку выведите «YES», во вторую — X, а в третью — Y (координаты точки
разбиения).
Если способов выбрать точку существует несколько, разрешается вывести любой.
Примеры
стандартный ввод стандартный вывод
3 4 YES
25 25 25 25 1.5
2.0
1 1 NO
33 33 33 1

Страница 7 из 7