Турнир Архимеда(52 задач)
Кировские командные турниры(8 задач)
Барнаульские командные турниры(10 задач)
Московская командная олимпиада(246 задач)
Командные чемпионаты школьников Санкт-Петербурга по программированию(167 задач)
ВКОШП(180 задач)
Сверхсекретный завод, расположенный высоко в горах, занимается изготовлением новейших систем контроля торсионных полей – нанокристаллов. Нанокристалл состоит из нескольких атомов, некоторые из которых попарно связаны сверхпрочными торсионными связями.
Нанокристалл стабилен, если между любыми двумя его атомами можно построить соединяющую их цепочку связей, возможно с использованием других атомов. Например, нанокристалл
из четырех атомов A, B, C и D, в котором между собой связаны пары A - B, A - C, B - C и B - D, стабилен. Если же, например, в нанокристалле из данных четырех атомов связаны только пары A - B и C - D, то кристалл нестабилен, поскольку, например, A и C не соединены никакой цепочкой связей.
Для любой пары атомов стабильного нанокристалла определена их взаимная удаленность – минимальная длина цепочки из связей, которая их соединяет. Например, рассмотрим описанный выше нанокристалл
. Взаимная удаленность атомов A и B равна единице (они соединены напрямую), а взаимная удаленность C и D равна двум (они соединены цепочками C - B - D и C - A - B - D, длина кратчайшей цепочки равна двум).
Важнейшей характерикой стабильного нанокристалла является его емкость. Емкость нанокристалла равна сумме взаимных удаленностей всех пар его атомов. Например, емкость нанокристалла
равна 8.
Недавно на завод поступил заказ – разработать стабильный нанокристалл заданной емкости c. При этом как число атомов в нанокристалле, так и число связей может быть произвольным. Помогите ученым разработать такой кристалл!
На вход программы поступает число c ( 1
c
10 000).
В первой строке выведите два целых числа n и m – количество атомов и связей в разработанном нанокристалле, соответственно. Будем считать, что атомы нанокристалла пронумерованы от 1 до n. Следующие m строк должны содержать по два целых числа – пары атомов, которые следует соединить торсионными связями. Если решений несколько, выведите любое.
Если искомого нанокристалла не существует, выведите в первой и единственной строке выходных данных два нуля.
2
0 0
8
4 4 1 2 1 3 1 4 3 4
Выполняя очередное задание Министерства образования и сельского хозяйства, программисты Флатландского государственного университета информационных технологий, удобрений и ядохимикатов создали специального робота по прокладке оросительных каналов.
Программа для робота представляет собой последовательность команд. Команды робота приведены в следующей таблице:
| Команда | Обозначение | Действия робота |
| Перемещение | (X) | Переместиться вперед на X километров, прокладывая за собой оросительный канал |
| Поворот налево | L | Повернуть налево на 90o |
| Поворот направо | R | Повернуть направо на 90o |
Любая программа начинается и заканчивается командами перемещения и не содержит двух команд перемещения или двух команд поворота подряд.
Исходно робот размещается в некоторой точке поля, на котором требуется создать оросительную систему. После запуска робот последовательно выполняет команды своей программы. Программа считается корректной, если полученный в результате ее выполнения канал не имеет самопересечений или самокасаний.
Программисты университета написали программу и собрались отправить ее по электронной почте в министерство. Однако, в результате поражения сети университета вирусом программа оказалась испорчена. А именно, из нее исчезли все команды перемещения. Теперь программистам требуется восстановить программу. Поскольку времени очень мало, решено было оставить сохранившиеся команды поворота, вставив между ними команды перемещения так, чтобы получившаяся программа была корректной.
Входные данные содержат команды поворота исходной программы в том порядке, в котором они в ней следовали. Каждая команда представляет собой символ «L» либо «R», команды друг от друга не отделяются. Количество команд не превышает 30 000.
Выведите любую корректную программу, последовательность команд поворота в которой совпадает с последовательностью, заданной во входных данных. Параметр X каждой команды перемещения должен быть положительным целым числом и не должен превышать 109. Все команды выведите в одной строке и друг от друга не отделяйте.
LLLRRR
(4)L(3)L(1)L(2)R(2)R(1)R(1)
Недавно на лесопилку, где работает Вася, поступил новый заказ. Для постройки нового дома мэру соседнего города требуется a досок длины x футов и b досок длины y футов.
Поскольку на лесопилке имеется только неограниченный запас досок длины z футов, Васе поручили исполнить заказ клиента, распилив имеющиеся доски на меньшие. Вася хочет закончить работу как можно быстрее, поэтому он хочет выполнить заказ, сделав как можно меньше распилов. При этом количество использованных досок длины z роли не играет, кроме того, часть досок, образовавшихся в результате распила, может не требоваться для заказа и остаться на лесопилке.
Например, если на лесопилке имеются доски длины 80, а клиенту требуется две доски длины 30 и семь досок длины 20, то достаточно сделать семь распилов: одну доску распилить двумя распилами на доски длины 20, 30 и 30, одну тремя распилами на четыре доски длины 20 и одну двумя распилами на доски длины 20, 20 и 40. Доска длины 40 клиенту не нужна, она останется на лесопилке, остальные доски будут отправлены клиенту.
На вход программы поступают числа \(a, x, b, y \) и \( z \). Все числа положительны и не превышают 300, \( x \le z, y \le z, x \neq y \).
Выведите минимальное количество распилов, которые требуется сделать для того, чтобы выполнить заказ.
2 30 7 20 80
7
Родители подарили мальчику Пете очень много одинаковых кубиков. Наиболее интересным сооружением из кубиков Петя счел двусторонние лесенки.

В основании (нижнем ряду) такой лесенки расположено \(N\) кубиков, а каждый следующий ряд кубиков укладывается на предыдущий так, что один кубик укладывается ровно на один нижестоящий кубик, а по крайней мере на самый правый и самый левый кубики предыдущего ряда новые кубики не кладутся (чтобы получилась ступенька).
Петя поручил старшему брату подсчитать, сколько можно построить различных лесенок, состоящих из ровно \(K\) рядов кубиков, в основании которых лежит ровно \(N\) кубиков. При этом, если одну лесенку можно получить из другой путем зеркального отображения, то они все равно считаются различными.
Вводятся два числа \(N\) и \(K\) (\(1 \le N \le 100\), \(1 \le K \le 100\)).
Выведите одно число – количество различных лесенок. Гарантируется, что правильный ответ не будет превышать \(10^{18}\).
10 4
84
Петя каждый день ездит на работу на метро по одному и тому же маршруту с двумя пересадками. Он уже давно запомнил, сколько времени занимает проезд на нужном ему отрезке пути по каждой из трех линий. Также он выучил расписание поездов на всех трех линиях, по которым он ездит. Помогите Пете найти такое время входа в метро, чтобы поездка на работу занимала как можно меньше времени.
В первой строке вводятся времена поездки по первой, второй и третьей линии (до пересадки) в минутах. Все времена – натуральные числа и не превышают 1140 минут. Считается, что пересадка не занимает времени.
Во второй строке вводятся количество поездов на первой линии, на второй линии и на третьей линии – натуральные числа, не превосходящие 100.
В третьей строке вводятся времена отправления поездов первой линии со станции, на которой садится Петя (по два числа на каждый поезд – часы и минуты).
В четвертой строке в том же формате вводятся времена отправления поездов второй линии со станции, на которую Петя делает первую пересадку.
В пятой строке – аналогичное расписание поездов третьей линии со станции, на которую Петя делает вторую пересадку.
Находиться в метро с часу ночи до 6 часов утра запрещается (в 6 часов утра на поезд садиться можно). Расписание движения поездов таково, что Петя может добраться до работы, не выходя из метро.
Выведите время (часы и минуты), в которое Петя может войти в метро, чтобы добраться до работы за наименьшее время. Если решений несколько, выведите любое из них.
10 20 30 2 2 2 10 0 12 0 11 0 15 0 12 0 19 0
10 0