Рудольф придумал для Байера игру с масштабированием. Для этой игры используется экран, на котором показываются изображения.
Экран Рудольфа имеет размеры $$$(K \cdot H) \times (K \cdot W)$$$ пикселей. Пиксели экрана нумеруются сначала по вертикали числами от 0 до $$$(K \cdot H - 1)$$$ сверху вниз, затем по горизонтали — числами от 0 до $$$(K \cdot W - 1)$$$ слева направо. Таким образом, левый верхний угол экрана имеет координаты $$$(0; 0)$$$, а правый нижний — $$$(K \cdot H - 1; K \cdot W - 1)$$$.
Сначала Рудольф показал Байеру изображение, развёрнутое на весь экран. Затем Рудольф уменьшил изображение в $$$K$$$ раз; при этом левый верхний угол уменьшенного изображения оказался в координатах $$$(Y_F; X_F)$$$. Уменьшенное изображение целиком поместилось на экране.
Теперь Рудольф задаёт Байеру $$$Q$$$ вопросов следующего вида: «если на исходном изображении у пикселя были координаты $$$(Y_i; X_i)$$$, то какими будут его координаты на уменьшенном изображении?» Помогите Байеру правильно ответить на все вопросы.
Первая строка содержит целые числа $$$K$$$, $$$H$$$ и $$$W$$$ ($$$1 \le K \cdot H, K \cdot W \le 2000$$$) — соответственно коэффициент масштабирования, высоту уменьшенного изображения и ширину уменьшенного изображения.
Вторая строка содержит целые числа $$$Y_F$$$ и $$$X_F$$$ ($$$0 \le Y_F \lt K \cdot H$$$, $$$0 \le X_F \lt K \cdot W$$$) — соответственно вертикальную и горизонтальную координаты левого верхнего угла уменьшенного изображения.
Третья строка содержит целое число $$$Q$$$ ($$$1 \le Q \le 2000$$$) — количество пикселей исходного изображения, положение которых требуется определить.
Следующие $$$Q$$$ строк описывают пиксели. Каждая из них содержит целые числа $$$Y_i$$$ и $$$X_i$$$ ($$$0 \le Y_i \lt K \cdot H$$$, $$$0 \le X_i \lt K \cdot W$$$) — соответственно вертикальную и горизонтальную координаты пикселя на исходном изображении.
Для каждого пикселя выведите в отдельной строке два целых числа — его горизонтальную и вертикальную координаты после уменьшения изображения.
2 3 4 2 2 3 1 3 4 6 2 2
2 3 4 5 3 3
3 2 2 0 0 4 1 1 2 4 5 2 4 3
0 0 0 1 1 0 1 1
Рудольф устроился на работу в подающий надежды IT-стартап, занимающийся разработкой весьма необычных сканеров. Сканеры нового поколения обрабатывают страницу особым образом — не по горизонтали или вертикали, а по диагонали. Каждая диагональ сканируется снизу вверх, а сами диагонали — слева направо:
Первое задание Рудольфа на новом месте — написать софт для диагонального сканера. По информации о пикселях диагоналей изображения Рудольфу нужно восстановить само исходное изображение. Помогите ему!
Первая строка содержит целые числа $$$H$$$ и $$$W$$$ ($$$1 \le H, W \le 1000$$$) — соответственно высоту и ширину сканируемого изображения.
Следующие строки описывают результаты сканирования. Каждая из них содержит последовательность из нулей и единиц — диагональ изображения.
Выведите $$$H$$$ строк, каждая из которых содержит $$$W$$$ нулей или единиц — восстановленное изображение.
6 10 0 00 010 0010 00110 011000 010000 010110 001010 000000 01010 0110 000 10 0
0000000000 0111001100 0010010010 0010010010 0111001100 0000000010
В ходе своих научных изысканий Рудольф наконец-то вывел полином, описывающий Самую Важную Закономерность!
Теперь осталось только красиво записать получившийся полином на слайде для выступления в Академии наук. Запись должна быть составлена с учётом следующих требований:
Помогите Рудольфу получить текстовую запись имеющегося у него полинома.
Первая строка содержит целое число $$$N$$$ ($$$0 \le N \le 100$$$) — максимальную из степеней мономов в полиноме.
Вторая строка содержит $$$(N + 1)$$$ целых чисел $$$C_i$$$ ($$$-100 \le C_i \le 100$$$) — коэффициенты полинома в порядке от старших степеней к младшим.
Выведите одну строку — текстовую запись полинома.
3 1 -2 3 -4
x^3 - 2 * x^2 + 3 * x - 4
2 3 0 -1
3 * x^2 - 1
Полгода Рудольф размышлял над концепцией логического устройства, которое поможет ему узнать ответ на Главный Вопрос Жизни, Вселенной и Всего Такого. Похоже, что ему наконец удалось учесть все-все нюансы, и он составил самую настоящую логическую схему!
При составлении логической схемы Рудольф руководствовался следующими правилами:
Теперь Рудольфу предстоит выяснить, какое логическое значение окажется на выходе устройства, если его собрать по схеме и запустить. Помогите ему найти ответ на этот вопрос.
Ввод содержит 3 или более строк, описывающих логическую схему.
Описание схемы удовлетворяет правилам, описанным выше. Общее количество символов в описании схемы не превосходит $$$10^6$$$.
Выведите одно целое число — результат выполнения логической схемы.
............................................................ ............................................................ ............###............................................. ............#1#............................................. ............###............................................. .............+.............................................. .............+.............................................. .............+.............................................. .............+.............................................. .............+.............................................. ...###.......+................###...........###............. ...#0#.......+.......###......#1#...........#1#............. ...###.......+.......#1#......###...........###............. ....+........+.......###.......+.............+.............. ....+........+........+........+.............+.............. ....+........+........+........+.............+.............. ....+........+........+........+.............+.............. ....+...###..+........+........+.......###...+.............. ....++++#&#+++........+........++++++++#|#++++.............. ........###...........+................###.................. .........+............+.................+................... .........+............+.................+................... .........+............+.................+................... .........+............+.................+................... .........+..###.......+.................+................... .........+++#&#++++++++.................+................... ............###.........................+................... .............+..........................+................... .............+..........................+................... .............+..........................+................... .............+..........................+................... .............+............###...........+................... .............+++++++++++++#|#++++++++++++................... ..........................###............................... ...........................+................................ ...........................+................................ ...........................+................................ ...........................+................................ ..........................###............................... ..........................#?#............................... ..........................###............................... ............................................................ ............................................................ ............................................................ ............................................................
1
.................................................. .................................................. .................................................. .................................................. .....................###.......................... .....................#?#.......................... .....................###.......................... ......................+........................... ......................+........................... ......................+........................... ......................+........................... .....................###.......................... .........++++++++++++#&#++++++++.................. .........+...........###.......+.................. .........+.....................+.................. .........+.....................+.................. .........+.....................+.................. .........+.....................+.................. ........###...................###................. ....++++#|#+++........++++++++#|#++++............. ....+...###..+........+.......###...+............. ....+........+........+.............+............. ....+........+........+.............+............. ....+........+........+.............+............. ....+........+........+.............+............. ...###......###......###...........###............ ...#1#......#1#......#1#...........#1#............ ...###......###......###...........###............ .................................................. .................................................. .................................................. .................................................. .................................................. .................................................. .................................................. ..................................................
1
Рудольф только что переустановил операционную систему на своём ноутбуке и сейчас занят формированием привычной ему иерархии директорий и документов.
Элементами файловой системы являются файлы и папки. Каждый файл или папка размещаются внутри некоторой другой папки; единственным исключением из этого правила является корневая папка — для неё родительской папки не существует.
Каждый файл имеет определённый размер в байтах. Размером папки считается сумма размеров всех содержащихся в ней файлов, а также всех содержащихся в ней папок. Размер пустой папки равен нулю.
Оказывается, Рудольфа раздражают ситуации, когда в какой-то папке становится слишком много или слишком мало файлов. Поэтому Рудольф то и дело перемещает файлы из одних папок в другие, а также проверяет размер папок.
Помогите Рудольфу автоматизировать его работу с файловой системой.
Первая строка содержит слово $$$R$$$ — имя корневой папки.
Вторая строка содержит целое число $$$N$$$ ($$$1 \le N \le 10^5$$$) — количество элементов (файлов и папок) в файловой системе, не считая корневой папки.
Следующие $$$N$$$ строк описывают элементы файловой системы. Каждая из них содержит целое число $$$T_i$$$ ($$$T_i \in \{0, 1\}$$$), слово $$$S_i$$$ и слово $$$P_i$$$ — соответственно тип элемента ($$$0$$$ — папка, $$$1$$$ — файл), название элемента и название папки, в которой он размещён. Если $$$T_i = 1$$$, то далее следует целое число $$$V_i$$$ ($$$1 \le V_i \le 10^9$$$) — размер файла в байтах.
Следующая строка содержит целое число ($$$1 \le Q \le 10^5$$$) — количество действий Рудольфа.
Следующие $$$Q$$$ строк описывают действия Рудольфа. Каждая из них содержит целое число $$$T_j$$$ ($$$T_j \in \{0, 1\}$$$) — вид действия ($$$0$$$ — вычисление размера папки, $$$1$$$ — перемещение файла). Если $$$T_j = 0$$$, то далее следует слово $$$S_j$$$ — имя папки, у которой вычисляется размер. Если $$$T_j = 1$$$, то далее следуют слова $$$S_j$$$ и $$$P_j$$$ — соответственно имя перемещаемого файла и имя папки, в которую он перемещается.
Имена всех элементов файловой системы уникальны, состоят из строчных латинских букв и имеют длину от 1 до 20 символов.
Для каждого действия вида $$$0$$$ выведите одно целое число: суммарный размер в байтах всех файлов, расположенных в интересующей папке и её подпапках.
root 7 0 foldone root 0 foldtwo root 0 foldthree foldone 0 foldfour foldone 1 fileone foldfour 10 1 filetwo foldfour 5 1 filethree foldtwo 7 5 0 foldone 1 fileone foldthree 0 foldone 0 foldthree 0 foldtwo
15 15 10 7
home 1 0 srv home 1 0 home
0
Случилось страшное — Рудольф почти проспал начало собственной лекции! Сейчас он в спешке собирается, надеясь всё же успеть в университет.
На пути от дома Рудольфа до университета есть $$$N$$$ остановок общественного транспорта; дом Рудольфа находится у первой остановки, университет — у $$$N$$$-й. Таким образом, путь разделён на $$$(N - 1)$$$ участков между последовательными остановками.
Каждый участок пути Рудольф может преодолеть либо пешком, либо на маршрутке:
Лекция Рудольфа должна начаться через $$$T$$$ минут, а в кармане спешно надетой куртки он нашёл $$$C$$$ рублей, которые может потратить на оплату маршруток.
Рудольф очень волнуется и никак не может спланировать оптимальный маршрут. Помогите ему определить, какое наименьшее максимальное количество усталости он может получить в дороге, добравшись до университета не более чем за $$$T$$$ минут и потратив на проезд не более $$$C$$$ рублей.
Первая строка содержит целые числа $$$N$$$, $$$C$$$ и $$$T$$$ ($$$2 \le N \le 50$$$, $$$1 \le C \le 1000$$$, $$$1 \le T \le 10^9$$$) — соответственно количество остановок на пути от дома до университета, бюджет Рудольфа в рублях и количество минут до начала занятий.
Следующие $$$(N - 1)$$$ строк описывают участки пути. Каждая из них содержит целые числа $$$A_i$$$, $$$X_i$$$, $$$B_i$$$ и $$$Y_i$$$ ($$$1 \le A_i, B_i \le 10^6$$$, $$$1 \le X_i \le 10^6$$$, $$$1 \le Y_i \le 50$$$) — соответственно время преодоления участка пешком в минутах, количество получаемой усталости, время преодоления участка на маршрутке в минутах и стоимость проезда на маршрутке в рублях.
Если Рудольф не сможет уложиться в отведённые время и бюджет, выведите -1.
Иначе в первой строке выведите одно целое число — наименьшее максимальное количество усталости, которое Рудольф может себе позволить.
Во второй строке выведите $$$(N - 1)$$$ целых чисел, описывающих оптимальный маршрут Рудольфа: если $$$i$$$-й участок необходимо преодолеть пешком, $$$i$$$-е число должно быть равно 0, иначе — 1. Если подходящих ответов несколько, выведите любой из них.
5 50 30 10 1 5 20 10 1 5 50 10 4 5 30 10 3 5 30
3 1 0 1 0
2 50 30 50 1 35 10
-1
Рудольфу подарили шкатулку с необычным замком-головоломкой. Замок представляет собой квадратную сетку размера $$$N \times N$$$, в каждой клетке которой находится лампочка.
Горизонтальные ряды лампочек нумеруются числами от $$$1$$$ до $$$N$$$ сверху вниз, вертикальные — числами от $$$1$$$ до $$$N$$$ слева направо. Таким образом, например, лампочка в верхнем правом углу имеет координаты $$$(1; N)$$$, а лампочка в нижнем левом углу — $$$(N; 1)$$$.
Если Рудольф нажмёт на некоторую лампочку, то она поменяет своё состояние (то есть погаснет, если она горела, либо зажжётся, если не горела). Кроме того, при этом поменяют своё состояние все лампочки, соседние с нажатой по стороне.
Шкатулка откроется, если Рудольф сможет зажечь все лампочки. Помогите ему понять, на какие из них для этого нужно нажать.
Обратите внимание, что минимизировать количество ходов не требуется, но Рудольф должен сделать не более $$$1000$$$ ходов.
Первая строка содержит целое число $$$N$$$ ($$$1 \le N \le 30$$$) — размер головоломки.
Следующие $$$N$$$ строк описывают начальное состояние головоломки. Каждая из них содержит $$$N$$$ символов $$$A_{ij}$$$ ($$$A_{ij} \in \{\texttt{*}, \texttt{.}\}$$$). Символ $$$\texttt{*}$$$ обозначает включенную лампочку, символ $$$\texttt{.}$$$ — выключенную.
В первой строке выведите YES, если Рудольф сможет сделать так, чтобы все лампочки горели, либо NO, если не сможет.
Если решение существует, во второй строке выведите целое число $$$K$$$ — количество действий, которое требуется сделать Рудольфу. Число $$$K$$$ не должно превышать $$$1000$$$.
В следующих $$$K$$$ строках выведите по два целых числа — координаты лампочек, на которые нужно нажать.
3 ... ... ...
YES 5 1 1 1 3 2 2 3 1 3 3
4 .*.* *.*. .*.* *.*.
NO
Рудольф пишет диссертацию, посвящённую физике течения жидкости. Для экспериментов Рудольф соорудил необычную лабораторную установку, представляющую собой... аквариум.
Внутри аквариума есть $$$N$$$ поперечных перегородок, расположенных на равных расстояниях друг от друга и от стенок аквариума. Перегородки пронумерованы слева направо числами от $$$0$$$ до $$$(N - 1)$$$; высота $$$i$$$-й перегородки равна $$$H_i$$$. Высота боковых стенок аквариума очень велика; фактически, её можно считать неограниченной.
Пространство, ограниченное соседними перегородками или боковыми стенками аквариума, будем называть сектором. Нетрудно видеть, что аквариум оказывается разделён на $$$(N + 1)$$$ секторов. Секторы нумеруются слева направо числами от $$$0$$$ до $$$N$$$.
Изначально аквариум не содержит воды.
В рамках своих экспериментов Рудольф выполняет два вида действий: либо доливает некоторый объём воды в определённый сектор, либо измеряет высоту столба воды в определённом секторе.
При увеличении объёма воды в секторе на 1 высота столба воды увеличивается также на 1. Если высота столба воды превышает высоту левой или правой перегородки, то вода переливается в соседние секторы (которые также могут переполниться, и тогда вода распространяется дальше).
Помогите Рудольфу проконтролировать правильность его измерений.
Первая строка содержит целое число $$$N$$$ ($$$0 \le N \le 1000$$$) — количество перегородок.
Вторая строка содержит $$$N$$$ целых чисел $$$H_i$$$ ($$$0 \le H_i \le 10^9$$$) — высоту каждой из перегородок.
Третья строка содержит целое число $$$Q$$$ ($$$1 \le Q \le 10^5$$$) — количество действий Рудольфа.
Следующие $$$Q$$$ строк описывают действия Рудольфа. Каждая из них содержит целое число $$$T_j$$$ ($$$T_j \in \left\{1, 2\right\}$$$) — вид действия. Если $$$T_j = 1$$$, то далее следуют целые числа $$$S_j$$$ и $$$V_j$$$ ($$$0 \le S_j \le N$$$, $$$1 \le V_j \le 10^9$$$) — соответственно номер сектора, в который Рудольф наливает воду, и объём воды. Если $$$T_j = 2$$$, то далее следует целое число $$$S_j$$$ ($$$0 \le S_j \le N$$$) — номер сектора, в котором Рудольф проверяет уровень воды.
Для каждого действия вида 2 выведите вещественное число — высоту столба воды в интересующем секторе. Абсолютная или относительная погрешность ответа не должна превышать $$$10^{-6}$$$.
3 3 2 2 6 1 0 2 1 3 3 2 0 2 1 2 2 2 3
2.00000000 0.00000000 1.00000000 2.00000000
2 3 3 4 1 1 4 2 0 2 1 2 2
0.50000000 3.00000000 0.50000000
У Байера сегодня день рождения. Рудольф решил порадовать своего питомца и купил ему его любимые конфетки M&M's. Байер очень обрадовался такому подарку, сразу же открыл пачку и высыпал разноцветные конфетки на стол.
Рудольф заметил, что в пачке были конфетки N различных цветов, причём, судя по всему, на кондитерской фабрике их насыпали в пачку автоматически: среди количеств конфет каждого цвета было не более шести различных.
Налюбовавшись на конфетки, Байер собрался съесть их все с чаем. Байер ест M&M's очень интересным способом: он выбирает интересную группу конфеток, съедает её и запивает одним глотком чая. Группа конфеток считается интересной, если количество конфеток каждого цвета в ней одинаково. Например, три красные и три синие конфетки формируют интересную группу, две синие, две зелёные и две жёлтые — тоже, а одна жёлтая и две красные — нет.
Рудольфу стало интересно, какое минимальное количество глотков чая потребуется Байеру, чтобы съесть и запить все конфетки. Помогите ему найти ответ на этот вопрос.
Первая строка содержит целое число N (1 ≤ N ≤ 105) — количество цветов конфеток.
Вторая строка содержит N целых чисел Ci (1 ≤ Ci ≤ 105) — количество конфеток каждого цвета в пачке. Среди чисел Ci количество различных не превосходит 6.
Выведите одно целое число — минимальное количество глотков чая, которое потребуется Байеру, чтобы съесть все конфетки.
3 3 10 2
3
3 3 3 3
1
Это интерактивная задача.
Рудольф является разработчиком новейшего марсохода, который отправится на Марс для изучения его ледовых покровов.
Ледовый шельф представляет собой квадратную область размера $$$N \times N$$$, разделённую на участки $$$1 \times 1$$$. Участки нумеруются по горизонтали числами от $$$0$$$ до $$$(N - 1)$$$ с запада на восток, по вертикали — числами от $$$0$$$ до $$$(N - 1)$$$ с севера на юг. Таким образом, участок в северо-восточном углу шельфа имеет координаты $$$(N - 1; 0)$$$, а в юго-западном — $$$(0; N - 1)$$$.
Некоторые из участков могут содержать ледяные разломы. Миссия марсохода — составить карту этих разломов на всём шельфе.
Марсоход будет спущен на шельф в участке с координатами $$$(X_S; Y_S)$$$. Он должен исследовать местность, а затем добраться до участка с координатами $$$(X_E; Y_E)$$$ для эвакуации. Стартовый и конечный участки не содержат разломов, от стартового участка марсоход может добраться до конечного, а также до всех участков с разломами, перемещаясь по участкам, соседним по стороне.
Марсоход может выполнять следующие команды перемещения:
Марсоход не может выезжать за границы шельфа или заезжать на участки с ледяными разломами. В ответ на любую корректную команду перемещения марсоход возвращает сообщение $$$\texttt{OK}$$$. Некорректная команда перемещения приведёт к провалу миссии.
Кроме команд перемещения, марсоход может выполнять команды анализа местности:
В ответ на команду $$$\texttt{10}$$$ марсоход возвращает целое число от $$$0$$$ до $$$8$$$;
Эта команда требует запроса к орбитальной станции, поэтому выполнять её марсоход может только в том случае, если, во-первых, он ещё не выяснил расположение всех разломов, и, во-вторых, он не может безопасно проехать ни по одному участку, на которых он ещё не побывал.
В ответ на корректную команду $$$\texttt{100}$$$ марсоход возвращает целое число от $$$\texttt{0}$$$ до $$$\texttt{8}$$$, либо сообщение $$$\texttt{DANGER}$$$, если сам участок с координатами $$$(X; Y)$$$ содержит разлом. Некорректная команда $$$\texttt{100}$$$ приведёт к провалу миссии.
Наконец, когда марсоход завершит свою работу и будет готов к эвакуации, он должен выполнить последнюю команду:
В настоящее время марсоход тестируют на испытательном полигоне. Помогите Рудольфу управлять его творением!
Первая строка стандартного потока ввода содержит целое число $$$N$$$ ($$$1 \le N \le 10$$$) — размер ледового шельфа.
Вторая строка стандартного потока ввода содержит четыре целых числа $$$X_S$$$, $$$Y_S$$$, $$$X_E$$$, $$$Y_E$$$ ($$$0 \le X_S, Y_S, X_E, Y_E \le N - 1$$$) — соответственно координаты участков старта и эвакуации.
После считывания данных строк ваша программа должна выводить в стандартный поток вывода команды для марсохода в описанном выше формате. После каждой команды следует выводить символ перевода строки и сбрасывать буфер вывода:
Если будет выведена некорректная команда, решение получит вердикт «Неправильный ответ». Если команда не будет выведена или не будет сброшен буфер вывода, решение получит вердикт «Решение зависло».
После вывода команды, отличной от команды $$$\texttt{0}$$$, программа должна считать из стандартного потока ввода ответ марсохода в описанном выше формате.
После вывода команды $$$\texttt{0}$$$ программа должна завершить работу.
3 0 0 2 2 0 OK 0 OK 1 OK OK 0 OK 0 OK
10 3 1 10 2 1 10 4 1 3 1 10 2 1 10 2 1 0 ..* ... ...