Отборочный тур олимпиады ФПМИ для школьников (копия)
A. Три короля
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Три короля: Ячмень (Barley), Солод (Malt) и Хмель (Hops) вывели свои войска на военный смотр. Император Пивной Империи желает узнать, у кого же из королей больше воинов, но сосчитать не может. Советники императора доложили, что у Ячменя собрано $$$a$$$ полков по $$$x$$$ воинов в каждом, у Хмеля — $$$b$$$ полков по $$$y$$$ воинов, а у Солода — $$$c$$$ полков по $$$z$$$ воинов. Увы, престарелый император забыл даже простейшие арифметические действия... Помогите ему!

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

В единственной строке записаны 6 целых чисел: $$$a, b, c, x, y, z$$$ ($$$1 \le a, b, c, x, y, z \le 10^3$$$) — число полков у Ячменя, Солода, Хмеля, и число воинов в них соответственно.

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

Если у короля с самой сильной армией есть $$$x$$$ воинов, в единственной строке выведите имена всех королей, у которых $$$x$$$ воинов, через пробел в лексикографическом порядке.

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

B. Четыре гири
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

У Вас имеется четыре гири весом соответственно $$$p_1, p_2, p_3, p_4$$$. Можно ли все эти гири поместить на рычажные весы так, чтобы чаши этих весов оказались в состоянии равновесия?

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

Введите четыре целых величины $$$p_1, p_2, p_3, p_4$$$ ($$$1 \le p_i \le 10000$$$)

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

Выведите 'YES' или 'NO' в зависимости от того, можно ли разместить гири надлежащим образом.

Примеры
Входные данные
7 3 5 5
Выходные данные
YES
Входные данные
7 3 5 6
Выходные данные
NO

C. Багетных дел мастер
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

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

Обычно картины бывают прямоугольными. Однако однажды небольшая багетная мастерская, в которой Вы трудитесь учеником столяра, получила новый заказ: изготовить рамы для выставки картин художников-авангардистов. Подготовка реек для этого заказа поручена Вам. Увидев картины, вы в первый момент опешили: они не прямоугольные! Осмотрев их более внимательно, Вы убедились, что каждая картина имеет вид выпуклого четырёхугольника (треугольник является частным случаем такого четырёхугольника).

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

Сможете ли Вы определить минимальную длину багетной рейки, которую необходимо взять для изготовления рамы для одной из таких картин? Для изготовления рамы из рейки вырезаются четыре (в случае треугольной картины — три) трапециевидные части. Внешняя и внутренняя границы рамы образуют трёх- или четырёхугольники. Картина должна входить в раму без зазоров и наложений.

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

Первая строка содержит информацию о ширине рейки, вторая — пять величин, задающих вид и размеры картины. Точнее, если углы картины обозначить (в порядке обхода) буквами $$$A$$$, $$$B$$$, $$$C$$$, $$$D$$$, то в строке записаны длины сторон $$$AB$$$, $$$BC$$$, $$$CD$$$, $$$DA$$$ и диагонали $$$AC$$$. Все числа — положительные, не превосходящие $$$10^4$$$ и записаны с не более чем тремя знаками в дробной части.

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

Выведите рассчитанную длину рейки с точностью до $$$10^{-4}$$$.

Пример
Входные данные
2
13 15 25 25 14
Выходные данные
102.12605

D. base64-кодирование
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Base64 — стандарт кодирования двоичных данных при помощи только 64 символов ASCII. Алфавит кодирования содержит латинские символы A-Z, a-z и 0-9 (62 знака) и два дополнительных символа, зависящих от системы реализации. Каждые три исходных байта кодируются четырьмя символами (таким образом, количество байт увеличивается на $$$25\%$$$). В рамках данной задачи дополнительными символами являются + и /.

Для того, чтобы преобразовать данные в base64, первый байт помещается в самые старшие восемь бит 24-битного буфера, следующий — в средние восемь и третий — в младшие значащие восемь бит. Если кодируется менее, чем три байта, то соответствующие биты буфера устанавливаются в ноль. Далее каждые шесть бит буфера, начиная с самых старших, используются как индексы строки ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ (индексация начинается с нуля) и её символы, на которые указывают индексы, помещаются в выходную строку. Если кодируются только один или два байта, в результате получаются только первые два или три символа строки, а выходная строка дополняется двумя или одним символами =. Процесс повторяется над оставшимися входными данными.

В таблице показан результат кодирования строки Cat:

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

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

Первая строка содержит десятичное представление длины кодируемой последовательности (целое число от $$$1$$$ до $$$50\ 000$$$). Вторая строка содержит значения каждого байта этой последовательности, записанные в виде двух шестнадцатеричных цифр (шестнадцатеричные цифры выбираются из строки 0123456789ABCDEF) Эти значения разделяются одиночными пробелами. В начале и в конце строки пробелов нет.

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

Выведите исходную последовательность, закодированную по стандарту base64.

Примеры
Входные данные
3
43 61 74
Выходные данные
Q2F0
Входные данные
4
0F DD A4 12
Выходные данные
D92kEg==
Примечание

Первый пример соответствует таблице из условия.

E. Что больше?
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Заданы две непустые строки с десятичной записью неотрицательных действительных чисел. Как целая, так и дробная части содержат не более 100000 цифр и разделяются символом «точка». Дробная часть может отсутствовать, и точка в этом случае не записывается. Целая часть также может отсутствовать, и в этом случае точка стоит в начале строки. Дробные и целые части не могут отсутствовать одновременно. В начале и конце строки может быть записано произвольное количество нулей. Других символов, кроме описанных, в строках нет.

Определите, какое число больше…

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

Введите две строки с числами в формате, описанном выше.

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

Выведите единственную строку со значением -1, если первое из входных чисел меньше второго, 0, если эти числа равны, и 1, если первое число больше второго.

Примеры
Входные данные
211.000000000000000001
211
Выходные данные
1
Входные данные
15
00000000015.00000000
Выходные данные
0
Входные данные
.15
00000000015.00000000
Выходные данные
-1

F. Уголки
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

«Уголки» — одна из множества игр для двух игроков на шахматной доске. Первоначально на доске расставлено по 12 шашек белого и черного цвета так, как показано на рисунке.

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

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

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

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

Входные данные содержат восемь строк по восемь символов. Каждая строка соответствует одной строке игрового поля (сверху вниз) и содержит символы W, B или точку, что соответствует белой, черной шашке или пустой клетке.

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

Первая строка должна содержать позицию клетки, из которой можно совершить самую длинную серию прыжков, в стандартной шахматной нотации. Вторая строка содержит единственное число — количество прыжков в такой серии. Если задача допускает несколько решений, выведите то из них, для которого обозначение начальной клетки минимальное в лексикографическом порядке. Если ни одного прыжка сделать нельзя, единственная строка выходного файла должна содержать строку Impossible.

Примеры
Входные данные
BBB.....
BBB.....
BBB.....
BBB.....
.....WWW
.....WWW
.....WWW
.....WWW
Выходные данные
a6
1
Входные данные
B.B.B.B.
BB.B.B..
B.B.B.B.
...W....
........
..W.W.WW
WW.W.W..
..W.W.W.
Выходные данные
h3
7

G. Карточный фокус
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Джим работает престидижитатором. Иначе говоря, он фокусник. Основная специализация Джима — карточные фокусы.

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

И тут начинается магическое действие. Джим берет перемешанную колоду карт так, чтобы карты находились рубашкой вверх. Затем он раскладывает карты из колоды по $$$m$$$ кучкам, причем верхняя карта колоды попадает в первую кучку, вторая сверху — во вторую, $$$m + 1$$$-ая карта, если такая есть в колоде, попадает снова в первую кучку, $$$m + 2$$$-ая во вторую и т.д. После этого Джим спрашивает зрителя, в какой из кучек находится загаданная зрителем карта. Пусть карта попала в $$$i$$$-ую кучку. После этого Джим собирает кучки карт обратно в одну колоду. При этом $$$i$$$-ая кучка оказывается сверху новой колоды, под ней $$$i + 1$$$-ая и так до $$$n$$$-ой, после которой следует первая кучка и так до $$$i - 1$$$-ой. При этом порядок карт в каждой кучке сохраняется, то есть первая карта, положенная в кучку оказывается верхней в кучке, вторая — под ней. Повторяя данные операции несколько раз, через некоторое время Джим говорит, что путем магии и волшебства добился того, чтобы загаданная карта оказалась верхней в колоде. И карта действительно оказывается верхней.

Рассмотрим пример такого фокуса. Пусть $$$n = 6$$$ и карты обозначаются числами от $$$1$$$ до $$$6$$$, а $$$m = 2$$$. Пусть зритель загадал карту $$$1$$$, а помешанная колода имеет вид $$$(4, 2, 1, 5, 6, 3)$$$. При первом раскладывании по кучкам получаются кучки $$$(4, 1, 6)$$$ и $$$(2, 5, 3)$$$, после чего Джим собирает из этих кучек колоду $$$(4, 1, 6, 2, 5, 3)$$$. На следующем шаге кучки $$$(4, 6, 5)$$$ и $$$(1, 2, 3)$$$, после этого колода имеет вид $$$(1, 2, 3, 4, 6, 5)$$$. И с помощью магии загаданная карта оказалась верхней!

От того, какая карта загадана и как перемешаны карты в колоде, зависит сколько раз надо повторить магическое действие, чтобы найти загаданную карту. Однако существует такое минимальное число $$$k$$$, что для любого расположения карты в колоде и любой загаданной карты достаточно повторить раскладывания $$$k$$$ раз, чтобы загаданная карта оказалась верхней.

Напишите программу, которая по данным $$$n$$$ и $$$m$$$ найдет минимальное $$$k$$$.

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

Введите два целых числа $$$n$$$ и $$$m$$$ ($$$2 \le m \le n \le 10^{9}$$$).

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

Выведите единственное число $$$k$$$ — минимальное число раскладываний, которое необходимо совершить, чтобы загаданная карта точно оказалась сверху колоды.

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

H. Треугольники
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

На листе бумаги нарисован правильный треугольник со стороной, равной $$$n$$$. После этого рисунок разбит на единичные треугольники, как показано на рисунке для $$$n = 3$$$. Сколько различных треугольников вы сможете найти на этом рисунке? Треугольники считаются различными, если они различаются либо по размерам, либо по расположению.

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

Единственная строка содержит целое число $$$n$$$ ($$$1 \le n \le 10^4$$$).

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

Выведите единственное число — число различных треугольников.

Примеры
Входные данные
2
Выходные данные
5
Входные данные
4
Выходные данные
27