2016 (IV) Olympiad of MISiS, Final Round
A. Раскраска
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Афанасий – автор детских раскрасок. Недавно он решил, что изготовлять раскраски будет по совершенно новой технологии. А именно, изначально он отмечает на листе бумаги n точек, и соединяет эти точки отрезками так, чтобы никакие два отрезка не пересекались и из каждой точки выходило не более трех отрезков. В результате лист бумаги распадается на фигуры. Дети раскрашивают каждую образовавшуюся фигуру в уникальный цвет. Раскраска считается тем лучше, чем больше цветов потребуется детям, чтобы ее раскрасить. Помогите Афанасию выбрать такое расположение n точек и отрезков между ними, чтобы количество цветов было максимально.

По заданному числу n выведите такой плоский граф, что:

в нём n вершин,

степень каждой вершины не превышает трех,

число граней максимально.

Входные данные

Одно натуральное число n, 1 ≤ n ≤ 1000.

Выходные данные

В первых n строках выведите по два целых числа ai, bi (|ai| ≤ 109,  |bi| ≤ 109), разделенных пробелом. В i-ой строке – координаты i-ой вершины графа (1 ≤ i ≤ n). Никакие две пары координат не должны совпадать.

В следующей строке выведите целое число m (0 ≤ m ≤ 10000) – число ребер графа.

В следующих m строках выведите по два натуральных числа ui, vi (1 ≤ ui,  vi ≤ n,  ui ≠ vi), разделенных пробелом, которые задают отрезок, соединяющий вершины ui и vi. Каждый отрезок должен быть упомянут ровно один раз. Из каждой точки должно выходить не более трех отрезков, любые два различных отрезка не должны иметь общих точек, кроме своих концов.

Примеры
Входные данные
2
Выходные данные
-1000000000 -1000000000
1000000000 1000000000
0
Входные данные
7
Выходные данные
0 0
4 0
0 2
4 2
1 1
3 1
2 1
10
1 2
1 3
1 5
2 4
2 6
3 4
3 5
4 6
5 7
6 7
B. Опционы
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
64 мегабайта
ввод
стандартный ввод
вывод
стандартный вывод

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

У Дениса есть список торговых площадок, на которых он может торговать опционами. На площадке номер i стоимость одного опциона составляет ai рублей, а стоимость каждого дополнительного опциона составляет bi рублей. Так, например, чтобы купить k опционов на площадке номер i, нужно заплатить ai + (k - 1)·bi рублей. Денису регулярно приходят письма от партнеров. Письмо с номером i содержит информацию о дополнительной торговой площадке (два целых числа ai, bi), а также запрос о том, за какую минимальную стоимость можно купить ci опционов на одной из площадок, информация о которой известна на данный момент.

Дополнительно известно, что партнеры – люди серьезные и любят порядок. Поэтому информацию о площадках они решили присылать в порядке невозрастания чисел bi. И все бы ничего, но программу сортировки они взяли с одного очень известного сайта, на котором автор сайта умышленно допустил ряд ошибок в алгоритме. Ошибки в алгоритме привели к тому, что числа bi были отсортированы не совсем верно, а именно с точностью до пяти позиций. То есть для массива bi выполнено соотношение bi ≤ bj, при i ≥ j + 5.

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

Входные данные

В первой строке записано число 1 ≤ n ≤ 105.

В следующих n строках записаны по три целых числа 1 ≤ ai,  bi,  ci ≤ 106.

Выходные данные

Выведите n чисел, по одному в строке – ответы на каждое из писем от партнеров Дениса.

Пример
Входные данные
3
3 1 4
1 2 2
2 1 3
Выходные данные
6
3
4

C. Странная функция
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
64 мегабайта
ввод
стандартный ввод
вывод
стандартный вывод

Студент Иннокентий обучает младшую сестру Машеньку программированию. Недавно он показал ей такую функцию:

Затем он написал два натуральных числа a и b (1 ≤ a < b ≤ 2·109) и попросил вычислить значение выражения F(a, F(a+1, ... F(b - 1, b)...)). Например, для чисел 5 и 6 искомое выражение имеет вид F(5, 6), а для чисел 14 и 17 искомое выражение имеет вид F(14, F(15, F(16, 17))).

К удивлению брата, Машенька легко справилась с этой задачей. Попробуйте и вы.

Входные данные

В единственной строке через пробел записаны два целых числа a и b, (1 ≤ a < b ≤ 2·109).

Выходные данные

Выведите единственное целое число – ответ на задачу.

Пример
Входные данные
14 17
Выходные данные
62

D. Доменная печь 2
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
64 мегабайта
ввод
стандартный ввод
вывод
стандартный вывод

Однажды студенту Пафнутию перед сдачей зачета по металлургии приснился страшный сон. Он оказался в комнате очень странной формы, внутри которой стояла огромная доменная печь. Проснувшись, он начал вспоминать детали сна. В частности, он вспомнил, что одна стена комнаты имела вид параболы с вершиной в точке (0, H), и эта парабола пересекала ось Ox в точках ( ± T, 0), а вторая стена представляла из себя отрезок, соединяющий точки (T, 0) и ( - T, 0). Теперь ему интересно доменную печь какого максимального размера можно разместить внутри данной комнаты. Доменную печь Пафнутий для простоты считает кругом. Пафнутий справился с данной задачей, попробуйте и Вы.

Входные данные

В первой строке записано число T, во второй – число H, 0 ≤ T,  H ≤ 20000. Оба числа даны с 6-ю знаками после запятой.

Выходные данные

Выведите единственное число – максимально возможный радиус R доменной печи, с абсолютной погрешностью не более 10 - 6.

Пример
Входные данные
10.000000
10.000000
Выходные данные
5.000000

E. Стража
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
64 мегабайта
ввод
стандартный ввод
вывод
стандартный вывод

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

Сильвестр считает расстановку стражей правильной, если их посты расположены выпукло относительно друг друга: для каждого стража точка, в которой расположен его пост, не может принадлежать выпуклой оболочке точек, в которых расположены посты остальных стражей. Другими словами, выпуклая оболочка точек, в которых расположены посты стражей, должна являться выпуклым N-угольником.

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

Какова вероятность того, что при таком случайном выборе постов для N стражей, полученная расстановка будет правильной?

Входные данные

В первых трех строках даны координаты башен: координаты каждой башни задаются парой целых чисел x, y,  - 2000 ≤ x, y ≤ 2000. Гарантируется, что координаты башен попарно различны. В четвертой строке дано количество стражей N, 1 ≤ N ≤ 10.

Выходные данные

В единственной строке выведите вероятность правильной расстановки стражей с абсолютной погрешностью не более 10 - 4.

Примеры
Входные данные
-15 -15
15 -15
0 15
3
Выходные данные
1.0000000000
Входные данные
-15 -15
15 -15
0 15
4
Выходные данные
0.6666666667

F. График совещаний
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
64 мегабайта
ввод
стандартный ввод
вывод
стандартный вывод

График главного программиста Пети очень напряженный. Каждый день у Пети назначено по два совещания. График совещаний расписан на N дней вперед. У каждого совещания есть время начала и время окончания. Совещания, которые проходят в один день, могут накладываться друг на друга произвольным образом. На работе у Пети действуют следующие правила:

  1. Если первое совещание закончилось позже, чем было назначено начало второго совещания, то из-за задержки время начала и время конца второго совещания сдвигаются на величину задержки. Причем, вне зависимости от величины сдвига, второе совещание будет закончено не позднее окончания рабочего дня (рабочий день заканчивается в 18 часов).
  2. Если в момент окончания первого совещания второе совещание уже должно было закончиться, то второе совещание не переносится, а совсем отменяется.

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

  1. Из всех возможных расписаний, которые могли получиться при таком наборе опечаток, получилось такое расписание, при котором общее время пребывания Пети на всех совещаниях минимально.
  2. Время начала и время окончания каждого совещания лежит в пределах от 8 до 18 часов.
  3. Время окончания совещания больше или равно времени начала совещания.
  4. Время начала второго совещания больше или равно времени начала первого совещания.
Входные данные

В первой строке дано целое число N – количество дней, для которых был составлен график совещаний, 1 ≤ N ≤ 1000.

Во второй строке дано целое число K – количество опечаток, которые допустил Петя, 1 ≤ K ≤ 4·N.

В третьей строке дано целое число T – количество часов, на которое ошибался Петя, 1 ≤ T ≤ 10.

В следующих N строках записано по четыре целых числа ai, bi, ci, di, где ai – время начала первого совещания в i-й день, bi – время окончания первого совещания в i-день, ci – время начала второго совещания в i-й день, di – время окончания второго совещания в i-й день, 8 ≤ ai, bi, ci, di ≤ 18, ai ≤ bi, ci ≤ di, ai ≤ ci, 1 ≤ i ≤ N.

Выходные данные

Программа должна вывести расписание, которое получилось у Пети в следующем формате: в i-й строке должны быть записаны через пробел четыре числа – время начала первого совещания в i-й день, время окончания первого совещания в i-й день, время начала второго совещания в i-й день, время окончания второго совещания в i-й день.

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

Пример
Входные данные
1
1
1
11 13 16 17
Выходные данные
11 12 16 17

G. Игра Васи
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
64 мегабайта
ввод
стандартный ввод
вывод
стандартный вывод

Студент МИСиСа Вася любит придумывать новые игры. В частности, однажды он придумал совершенно новую и уникальную игру. Игра Васи происходит на прямоугольном поле размера M × N клеток. Будем считать, что левая верхняя клетка имеет координаты (1, 1). В каждой клетке изначально написано некоторое число. В игру играет Q человек. Каждый человек за один ход может выбрать некоторый прямоугольник, стороны которого параллельны сторонам поля, и прибавить ко всем его клеткам некоторое целое число A.

Затем по результирующему полю в конце игры Вася производит начисление очков (каким образом оно происходит пока не решил и сам Вася). Тем не менее Вася просит Вас помочь по начальной конфигурации поля и ходам игроков рассчитать результирующее игровое поле.

Входные данные

В первой строке записано единственное целое число 1 ≤ Q ≤ 105 – количество игроков.

В следующих Q строках записаны ходы игроков. Каждая из строк содержит пять целых чисел: Y1, X1, Y2, X2, A, где (Y1, X1) – строка и столбец верхнего левого угла выбранного игроком прямоугольника, а (Y2, X2) – строка и столбец нижнего правого угла выбранного игроком прямоугольника. 1 ≤ X1 ≤ X2 ≤ N, 1 ≤ Y1 ≤ Y2 ≤ M.  - 100 ≤ A ≤ 100 – число, которое должно быть прибавлено в каждой клетке выбранного прямоугольника.

В (Q + 2)-й строке записаны два числа M и N, 5 ≤ M,  N ≤ 1000 – высота и ширина поля. В следующих M строках записаны через пробел по N чисел – элементы матрицы. Все элементы матрицы – целые числа, по модулю не превышающие 100.

Выходные данные

Выведите ровно M строк, в каждой строке по N целых чисел через пробел – значения элементов матрицы после ходов всех Q игроков.

Пример
Входные данные
2
2 4 6 8 1
4 5 9 9 3
10 10
0 0 0 0 0 8 0 0 0 0
0 0 0 0 0 0 8 0 0 0
0 0 0 0 0 0 0 8 0 0
0 0 0 0 0 0 0 3 0 0
0 0 0 0 0 0 0 5 1 1
0 0 0 0 0 0 0 1 2 2
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
Выходные данные
0 0 0 0 0 8 0 0 0 0
0 0 0 1 1 1 9 1 0 0
0 0 0 1 1 1 1 9 0 0
0 0 0 1 4 4 4 7 3 0
0 0 0 1 4 4 4 9 4 1
0 0 0 1 4 4 4 5 5 2
0 0 0 0 3 3 3 3 3 0
0 0 0 0 3 3 3 3 3 0
0 0 0 0 3 3 3 3 3 0
0 0 0 0 0 0 0 0 0 0

H. LED-Цифры
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
64 мегабайта
ввод
стандартный ввод
вывод
стандартный вывод

Назовем число, записанное LED-цифрами, симметричным, если его запись обладает осевой симметрией с вертикальной либо горизонтальной осью. К примеру: 88 – симметричное, 87 – не симметричное, 1338 – симметричное, 258 – не симметричное, 582 – симметричное, 15821 – не симметричное и т.п. Вам даны два числа: A и B, A ≤ B. Найти количество симметричных чисел в отрезке [A, B] (включая A и B).

Входные данные

В единственной строке записаны через пробел два целых числа: A и B, 0 ≤ A ≤ B ≤ 1018.

Выходные данные

Выведите единственное целое число – количество симметричных чисел в отрезке [A, B]. Ответ выводить по модулю 109 + 7.

Пример
Входные данные
1 24
Выходные данные
7

I. Недели искусства
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
64 мегабайта
ввод
стандартный ввод
вывод
стандартный вывод

Не так давно в МИСиС прошли недели, посвященные живописи и искусству. В частности, в течение данных недель студентам были представлены разные картины.

Каждая картина оценивается своей красотой n. Красота картины определяется по формуле n = x2 + y3, где x – натуральное число, характеризующее художественные достоинства картины, а y – стоимость картины в тысячах долларов (также натуральное число). Две картины, у которых совпадают оба параметра x и y, считаются одинаковыми.

Теперь студентам МИСиС интересно, какое существует максимальное количество различных картин, имеющих красоту n.

Входные данные

В единственной строке записано целое число n, 1 ≤ n ≤ 1018.

Выходные данные

Выведите единственное число – количество различных картин с красотой n.

Примеры
Входные данные
1
Выходные данные
0
Входные данные
17
Выходные данные
2

J. Игра Пети
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Студент МИСиСа Петя также как и Вася любит придумывать разные игры. Вдохновившись творением Васи он придумал свою еще более новую и уникальную игру.

Игра Пети также происходит на прямоугольном поле размера M × N клеток. Будем считать, что левая верхняя клетка имеет координаты (1, 1). Значения во всех клетках изначально равны нулю. В игру играет Q человек. Каждый человек за один ход может выбрать некоторый прямоугольник, стороны которого параллельны сторонам поля, и прибавить ко всем его клеткам некоторое целое число A.

Теперь Петю очень интересует, какое максимальное значение элемента получилось на результирующем поле. Помогите ему в этом.

Входные данные

В первой строке записано единственное целое число 1 ≤ Q ≤ 104 – количество игроков.

В следующих Q строках записаны ходы игроков. Каждая из строк содержит пять целых чисел: Y1, X1, Y2, X2, A, где (Y1, X1) – строка и столбец верхнего левого угла выбранного игроком прямоугольника, а (Y2, X2) – строка и столбец нижнего правого угла выбранного игроком прямоугольника. 1 ≤ X1 ≤ X2 ≤ N, 1 ≤ Y1 ≤ Y2 ≤ M.  - 100 ≤ A ≤ 100 – число, которое должно быть прибавлено в каждой клетке выбранного прямоугольника.

В (Q + 2)-й строке записаны два числа M и N, 5 ≤ M ≤ 109, 5 ≤ N ≤ 4000 – высота и ширина поля.

Выходные данные

Выведите ровно одно целое число – максимальное значение элемента матрицы после ходов всех Q игроков.

Пример
Входные данные
2
2 4 6 8 1
4 5 9 9 3
10 10
Выходные данные
4