2010(8 задач)
2011(8 задач)
2012(8 задач)
2013(8 задач)
2014(8 задач)
2015(8 задач)
2016(8 задач)
2017(8 задач)
Московская областная олимпиада(13 задач)
Кировская открытая областная олимпиада(21 задач)
Санкт-Петербург(3 задач)
Во Флатландии с некоторых пор процветают феодальные отношения – у каждого порядочного феодала есть ровно два вассала, у непорядочных – вассалов нет совсем. Каждый феодал строит свой замок в городе на прямой, при этом:
Для удобства замки феодалов занумерованы натуральными числами по порядку слева направо, начиная с единицы, и разбиты на улицы. Улица (i, j) представляет собой последовательность подряд идущих замков, начиная с замка под номером i и заканчивая замком с номером j (i ≤ j)
Однажды в город приехал новый феодал и пожелал выкупить там замок у одного из жителей. Также ему стало интересно узнать социальный статус соседей по улице, однако, город к тому времени так разросся, что феодал уже не мог сделать этого самостоятельно. Напишите программу, которая поможет ему!
Первая строка входного файла содержит число N (1 ≤ N ≤ 30000) — высота замка единственного главного феодала в городе, который никому не подчиняется. Далее, в следующих двух строках идут числа i и j (\(0 \leq i, j < 10^{10000}\)), задающие улицу (i, j), на которой хочет приобрести замок новый феодал (гарантируется, что замки с номерами i и j находятся в черте города, i ≤ j, j – i ≤ 105).
В выходной файл требуется вывести высоты всех замков на указанной улице слева направо через пробел.
Будут оцениваться и частичные решения задачи при малых N. Частичные решения для N<20 набирают до 40 баллов, а для N<50 набирают не более 70 баллов.
Ввод | Вывод |
|
|
|
|
|
|
В двухмерной игре для современных мобильных телефонов «iCopter» между Васей и Петей идет Bluetooth-сражение. Идет третий раунд. Он проходит с применением вертолётной техники в горном массиве.
Горный профиль в игре «iCopter» задается ломаной (x1, y1), (x2, y2), …, (xN, yN), координаты вершин которой удовлетворяют неравенствам x1 < x2 < … < xN. Начальные и конечные точки профиля расположены на уровне моря (y1 = yN = 0).
Над горами летают вертолет Васи и вертолет Пети. Вертолёт Васи находится в точке A с координатами (XA, YA), Пети — в точке B с координатами (XB, YB). Вертолет Васи производит выстрел снарядом с начальной скоростью, которая задается вектором с компонентами (VX , VY).
Полёт снаряда проходит по следующим законам движения (они определяют координаты снаряда в каждый момент времени до столкновения с горой t ≥ 0):
X = XA + VX * t
В данной версии компьютерной игры снаряд взрывается только от удара в гору. При взрыве снаряд поражает все цели на расстоянии не больше R от эпицентра взрыва. Вертолёт противника считается уничтоженным, если он находится в радиусе поражения.
Требуется написать программу, которая по заданному рельефу, скорости снаряда и координатам вертолётов определяет точку попадания снаряда в гору и уничтожен ли при этом вертолёт Пети.
В первой строке входного файла задается семь целых чисел – радиус поражения R (0 ≤ R≤ 10 000, координаты точки A, координаты точки B, компоненты вектора скорости снаряда VX, VY ( -104 ≤ VX≤ 104, VX ≠ 0, 0 < VY≤ 104). Точки Aи B различны.
Во второй строке находится натуральное число N – количество вершин ломаной (2 ≤ N≤ 100 000), которая задает горный профиль. Последующие N строк содержат координаты вершин ломаной (x1, y1), (x2, y2), …, (xN, yN).
Координаты вершин ломаной, а также точек A и B, задаются парой целых чисел, не превосходящих по абсолютному значению 106. Гарантируется, что x1 < x2 < … < xN и y1 = yN = 0, а также то, что снаряд всегда попадает в заданный горный профиль и координата точки попадания xП по оси X лежит в пределах
x1 ≤ xП ≤ xN.
В первой строке выведите координаты точки взрыва с точностью не менее 3 знаков после запятой. Во второй строке выведите «YES», если вертолёт Пети будет поражен взрывом, и «NO» в противном случае.
Ввод | Вывод |
|
|
|
|
Фирма «АйОйЛ» построила на скоростном шоссе Москва-Тверь N автозаправок. Каждая автозаправка имеет свой номер, который присваивался ей при строительстве, начиная с единицы. Кроме того, каждая автозаправка располагается на определенном километре шоссе. Километры на шоссе нумеруются от 0, начиная от Москвы.
Экономические расчеты показали нецелесообразность наличия на данном шоссе такого количества автозаправок, поэтому требуется сократить одну из них. Для максимального удобства автомобилистов необходимо закрыть такую автозаправку, которая имеет минимальное расстояние вдоль шоссе до ближайшей к ней другой автозаправки.
Требуется написать программу, которая находит автозаправку, которую можно сократить.
Первая строка входного файла содержит количество автозаправок N (2 ≤ N ≤ 105). Вторая строка входного файла содержит N различных целых чисел xi – километр, на котором расположена автозаправка с номером i (1 ≤ i ≤ N). Числа в строке разделены пробелом. Значения всех xi не меньше ноля и не превосходят 109 по абсолютной величине.
В первой строке выходного файла необходимо вывести номер автозаправки, которую можно сократить. Если ответов несколько, выведите любой из них.
Ввод | Вывод |
|
|
Впервые в жизни Петя летит на международную олимпиаду по программированию. Петя так волновался, что взял с собой множество вещей и теперь во время регистрации на рейс его чемодан не принимают, так как у него превышение разрешенной массы багажа.
У Пети в чемодане лежат N предметов, каждый предмет имеет свой вес Wi килограмм и ценность Ai рублей, причем оказалось так, что для любого предмета выполняется следующее неравенство:
W1 + W2 + … + Wi-1 ≤ Wi
Пете сообщили, что у него перевес чемодана в M килограмм, поэтому ему придется оставить в аэропорту какие-то предметы с суммарной массой не меньше M. При этом Петя хочет понести минимальный урон, а поэтому оставленные предметы должны иметь наименьшую возможную стоимость.
Требуется написать программу, которая подсчитает минимальную возможную стоимость оставленных предметов.
В первой строке задаётся количество предметов в багаже у Пети N (1 ≤ N ≤ 50) и какой у Пети перевес чемодана в килограммах M (1 ≤ M ≤ 1018). Во второй строке задаются N целых неотрицательных чисел – вес всех вещей Wi, сумма чисел не превышает 1018. В третьей строке заданы N целых неотрицательных чисел – ценность всех вещей Ai , все числа не превышают 109.
В выходной файл требуется вывести минимальную суммарную стоимость предметов, которые Петя будет вынужден оставить в аэропорту.
Ввод | Вывод |
|
|
|
|
Флатландия – необычная страна, и искусство у флатландцев тоже необычное. Особый интерес представляют их картины. Во-первых, флатландские художники используют для написания картин только ASCII символы, во-вторых, все картины исключительно квадратные.
Пете захотелось приобщиться к искусству Флатландии, однако, он столкнулся с очень серьёзной проблемой. Дело в том, что все картины защищены законом об авторских правах и кодируются следующим образом: над картиной последовательно выполняются K операций. Каждая операция – одно из четырёх зеркальных отражений:
Из надёжных источников Пете удалось узнать, какие отражения применялись к картине. Требуется написать программу, которая поможет ему раскодировать изображение.
В первой строке входного файла находятся два натуральных числа N и K (1 ≤ N ≤ 1000, 1 ≤ K ≤ 1000000), где N – размер картины, K – число отражений, применяемых для кодирования. Во второй строке содержатся K натуральных чисел, обозначающих номера отражений (числа могут принимать только значения 1, 2, 3 или 4).
В следующих N строках описывается само закодированное изображение. В (i+2)-й строке записана i-я строка закодированной картины. В изображении используются символы с ASCII-кодами от 32 до 126 включительно.
В выходной файл требуется вывести раскодированное изображение.
Ввод | Вывод |
|
|
|
|
|
|
|
|