Плюсануть
Поделиться
Класснуть
Запинить


Олимпиадный тренинг

Вы можете самостоятельно решать эти задачи столько раз, сколько вам это понадобится.
   

Снова спинеры

Формула

Денис тоже решил заняться производством и продажей спиннеров, но он считает, что у спиннера может быть только три или четыре лопасти. У него есть ровно M лопастей, которые он может прикреплять к основаниям, и неограниченный запас оснований. Он хочет изготовить несколько трёхлопастных и несколько четырёхлопастных спиннеров так, чтобы использовать все M лопастей. Определите, сколько спиннеров каждого вида он должен произвести. 

Программа получает на вход одно целое положительное число M, не превосходящее 2×109
, – количество лопастей, которое есть у Дениса.
 
Программа должна вывести два целых числа – количество спиннеров с 3 лопастями и количество спиннеров с 4 лопастями, которые должен произвести Денис. Если у задачи есть
несколько решений, нужно вывести любое из них. Если Денис не может использовать ровно M лопастей для производства спиннеров, программа должна вывести два числа 0.

Ввод Вывод Примечание
10 2
1
10 = 3 × 2 + 4 × 1
1 0
0
Невозможно произвести спиннеры так, чтобы
суммарное число лопастей было равно 1.
 

Гипотенуза треугольника

Формула

С клавиатуры вводятся два целых числа - катеты прямоугольного треугольника 
Напишите программу определения гипотенузы такого треугольника

Примеры

Входные данные Выходные данные
1 3 4 5.000000

Логические выводы

Формула

Болик решает логическую задачу. Для ее решения, он сначала сделал N базовых предположений. После этого происходит следующий процесс: Холмс разбивает все предположения на пары, из каждой пары отбрасывает наименее вероятное предположение (предположения таковы, что всегда есть наименее вероятное). Если получилось так, что какому-то предположению, пары не хватило, то Болик оставляет его для рассмотрения. Алгоритм повторяется пока у Болика не останется последнее предположение. 

Болик также привык считать количество логических выводов, которое он сделал. Так, например, если рассматриваются 11-ое и 31-ое предположение и отбрасывается 11-ое, то Болик совершил один логический вывод. Если, например, 238-ому предположению не хватило пары, то Болик оставляет его для рассмотрения, но, конечно, не считает это действие за логический вывод. Более того, последний вывод Болик проверяет дважды. 
Теперь Болик хочет понять по имеющемуся количеству базовых предположений сколько ему предстоит сделать логических выводов. 
 
Формат ввода
На вход подается натуральное число N (1 ≤   N ≤   10218) — количество базовых предположений. 
 
Формат вывода
Выведите единственное целое число — количество логических выводов. 
 
Пример
Ввод Вывод
3 3

Вещественные числа Формула

Напишите программу, которая вычисляет значение выражения


 
Программа должна запрашивать с клавиатуры ввод значений для чисел a, b и c (a, b  и с целые числа, b, с >0 ),
и выводить на экран одно число
Примеры:
Тест 1

Входные данные:
4 2 3
Выходные данные
0.67

Тест 2
Входные данные:
1 2 1
Выходные данные
0.50

Сложная формула - 1

Формула

С клавиатуры вводятся два вещественных числа: сначала x, затем  y (оба числа не больше 1000).
Составьте программу вычисления значения функций


и



Выведите на экран значения z и q, в виде 
z=число
q=число

Например:
Входные данные
5 3

Выходные данные
z=1.64088
q=0.315012
 

Лифт

Формула Условный оператор

Петру необходимо попасть с этажа A на этаж B. Для вызова лифта на всех этажах офисного здания, кроме первого и последнего, есть две кнопки – для перемещения вниз и перемещения вверх. В тот момент, когда Петр нажал нужную кнопку вызова, лифт находился на этаже C и вез одного пассажира на этаж D. Если лифт проезжает мимо этажа, на котором нажата кнопка вызова, и лифт движется в подходящем направлении, то лифт останавливается, чтобы посадить дополнительного пассажира. Лифт перемещается между соседними этажами за одну единицу времени, также одну единицу времени занимает остановка лифта на этаже для высадки или посадки пассажиров.
Напишите программу, вычисляющую, через сколько времени Петр доберется до этажа B, при условии, что никто больше не будет вызвать лифт.
Первая строка ввода содержит четыре целых числа A, B, C и D, разделенных одним пробелом (1 ≤ A, B, C, D ≤ 20, A≠B, C≠D, A≠C).
Вывести одно целое число – количество единиц времени от момента вызова лифта до момента, когда Петр выйдет из лифта на этаже B.
 
Ввод Вывод
3 9 2 5 10
3 9 5 2 13
Примечание:
Пояснение к примеру 1
Лифт за 1 единицу времени доедет до 3-го этажа, остановится на 1 единицу времени, чтобы Петр сел в лифт, затем через 2 единицы времени доедет до 5-го этажа и остановится на 1 единицу времени для высадки предыдущего пассажира, через 4 единицы времени лифт довезет Петра до 9-го этажа, и через 1 единицу времени Петр выйдет из лифта.

Выбор зала

Формула

Для проведения церемонии открытия олимпиады по информатике организаторы осуществляют поиск подходящего зала. Зал должен иметь форму прямоугольника, длина каждой из сторон которого является целым положительным числом.
Чтобы все участники церемонии поместились в зале, и при этом он не выглядел слишком пустым, площадь зала должна находиться в пределах от A до B квадратных метров, включительно.
Чтобы разместить на стенах зала плакаты, рассказывающие об успехах школьников на олимпиадах, но при этом не создать ощущения, что успехов слишком мало, периметр зала должен находиться в пределах от C до D метров, включительно.
Прежде чем сделать окончательный выбор, организаторы олимпиады решили просмотреть по одному залу каждого подходящего размера. Залы с размерами Y × Z и Z × Y считаются одинаковыми. Чтобы понять необходимый объем работ по просмотру залов организаторы задались вопросом, сколько различных залов удовлетворяют приведенным выше ограничениям. Требуется написать программу, которая по заданным A, B, C и D определяет количество различных залов, площадь которых находится в пределах от A до B, а периметр — от C до D, включительно.

Формат входного файла
Входной файл содержит четыре разделенных пробелами целых числа: A, B, C и D (1<=A<=B<=109 , 4<=C<=D<=109 ).
Формат выходного файла
Выходной файл должен содержать одно число — искомое количество залов.

Ввод:
2 10 4 8
Вывод:
3

Пояснения к примеру
В примере ограничениям удовлетворяют залы следующих размеров: 1 × 2, 1 × 3, 2 × 2

Улица

Формула Целые числа

По одну сторону улицы находятся дома с нечётными номерами (1, 3, 5, …), по другую сторону – с чётными (2, 4, 6, …). Дом № 1 находится напротив дома № 2,
дом № 3 – напротив дома № 4 и т. д. До соседнего дома нужно идти вдоль по улице одну минуту, неважно, с какой стороны улицы он находится (то есть от дома № 1 нужно идти одну
минуту как до дома № 3, так и до дома № 4). До дома, стоящего напротив, идти не нужно.

Человек вышел на улицу из дома номер A и должен дойти до дома номер B.
Определите, сколько минут ему нужно идти вдоль по улице.

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


Программа получает на вход два различных целых положительных числа A и B,не превосходящие 2×109, – номера домов. Программа должна вывести одно число – искомое количество минут.
 

Ввод Вывод
1
8
3

 

Периметр треугольника

Формула

С клавиатуры вводятся два целых числа - катеты прямоугольного треугольника 
Напишите программу определения периметра такого треугольника

Примеры

Входные данные Выходные данные
1 3 4 12.000000

Комета Бармалея

Формула

Как известно, комета Бармалея видна с Земли каждые C лет. Любопытно, что это происходит в годы, кратные C, т.е. C, 2×C, 3×C и т.д. Не каждому суждено увидеть эту комету хотя бы однажды в жизни. Впрочем, находятся счастливые долгожители, заставшие её прилёт даже несколько раз.
Считается, что впервые эту комету увидел и документировал знаменитый средневековый астроном Бармалео Бармалей. В честь него она и получила своё имя. Говорят, за свою долгую жизнь он успел сделать много великих открытий в самых разных областях науки. Однако недавно историки засомневались, правда ли все открытия, которые ему приписываются, Бармалео Бармалей сделал сам. В частности, они заинтересовались, сколько раз за свою жизнь учёный мог видеть комету, названную в его честь.
 
Бармалео Бармалей родился 1 января в год A и умер 31 декабря в год B. Сколько раз за его жизнь комета была видна с Земли? Мы считаем, что он мог видеть комету, даже будучи младенцем или глубоким стариком, т.е. если она прилетала в год A или B.

Программа получает на вход три целых числа A, B и C (1 ≤ A ≤ B ≤ 2×109 , 1 ≤ C ≤ 2×109 ) и должна вывести одно целое число – количество раз, которое комета была
видна между годами A и B включительно.

Ввод Вывод Примечание
1850
1900
50
2 Комета пролетала около Земли в 1850 и 1900 годах. Бармалео Бармалей застал оба раза.

Шнурки

Целые числа Формула

Обувная фабрика собирается начать выпуск элитной модели ботинок. Дырочки для шнуровки будут расположены в два ряда, расстояние между рядами равно a, а расстояние между дырочками в ряду b. Количество дырочек в каждом ряду равно N. Шнуровка должна происходить элитным способом “наверх, по горизонтали в другой ряд, наверх, по горизонтали и т.д.” (см. рисунок). Кроме того, чтобы шнурки можно было завязать элитным бантиком, длина свободного конца шнурка должна быть l. Какова должна быть длина шнурка для этих ботинок?
Запрещено использовать операторы if, while, for, repeat-until (Паскаль)

Входные данные: Программа получает на вход четыре натуральных числа a, b, l и N.

Выходные данные: Программа должна выводить одно число – искомую длину шнурка.

Примеры
входные данные
2
1
3
4
выходные данные
26

Кольцевая линия

Формула

В городе, в котором живут друзья Андрей и Борис, метро состоит из единственной кольцевой линии, вдоль которой на равном расстоянии друг от друга расположены n станций, пронумерованных от 1 до n. Участок линии метро между двумя соседними станциями называется перегоном.

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

Друзья заметили, что выполняется следующее условие: если загадать некоторую станцию X и выписать для нее два числа: Da — расстояние от станции, на которой живет Андрей, до станции X и Db — расстояние от станции, на которой живет Борис, до станции X, то полученная пара чисел [Da, Db] будет однозначно задавать станцию X.

Например, если n = 4, Андрей живет на станции 1, а Борис живет на станции 2, то станция 1 задается парой [0, 1], станция 2 — парой [1, 0], станция 3 — парой [2, 1] и станция 4 — парой [1, 2].

Их одноклассник Сергей живет в соседнем городе и не знает, на каких станциях живут Андрей и Борис. Чтобы найти друзей, он заинтересовался, сколько существует вариантов пар станций A, B, таких что если Андрей живет на станции A, а Борис — на станции B, то выполняется описанное выше условие.

Требуется написать программу, которая по числу станций n на кольцевой линии определяет искомое количество вариантов.

Формат входного файла
Первая строка входного файла содержит одно целое число n (3 ≤ n ≤ 40 000).
Формат выходного файла
Выходной файл должен содержать одно число — искомое количество вариантов.

Примеры входных и выходных файлов

Ввод Вывод
4 8
5 20

Пояснения к примерам
В первом примере подходят следующие варианты:
- Андрей живет на станции 1, а Борис на станции 2;
- Андрей живет на станции 1, а Борис на станции 4;
- Андрей живет на станции 2, а Борис на станции 1;
- Андрей живет на станции 2, а Борис на станции 3;
- Андрей живет на станции 3, а Борис на станции 2;
- Андрей живет на станции 3, а Борис на станции 4;
- Андрей живет на станции 4, а Борис на станции 1;
- Андрей живет на станции 4, а Борис на станции 3.

Вещественные числа Формула

Напишите программу, которая вычисляет значение выражения

Программа должна запрашивать с клавиатуры ввод значения для чисел a   и   b (a и b целые числа),
и выводить на экран одно число

Примеры:
Тест 1

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

Тест 2
Входные данные:
1 2
Выходные данные
1.5

Два измерения

Формула

Ученые планируют провести важный эксперимент с использованием исследовательского модуля
на планете X-2019. В процессе эксперимента будет проведено два измерения: основное и контрольное.
Каждое измерение занимает ровно один час и должно начинаться спустя целое число часов после
начала работы исследовательского модуля.
Данные эксперимента планируется немедленно передать на орбитальную станцию. Канал связи
с орбитальной станцией будет установлен с l-го по r-й час от начала работы исследовательского модуля, включительно. Кроме того, согласно плану эксперимента между измерениями планета
должна совершить целое число оборотов вокруг своей оси. Планета X-2019 осуществляет оборот
вокруг своей оси за a часов.
Таким образом, если измерения осуществляются на i-м и j-м часу, то должно выполняться неравенство l <= i < j <= r, а величина (j − i) должна быть кратна a. Теперь учёным необходимо понять,
сколько существует различных способов провести измерения.
Требуется написать программу, которая по заданным границам времени измерений l и r и периоду обращения планеты вокруг своей оси a определяет количество возможных способов провести
измерения: количество пар целых чисел i и j, таких что l <= i < j <= r, и величина (j − i) кратна a.

Формат входных данных
Входные данные содержат три целых числа, по одному на строке: l, r и a (1 <= l < r <= 109,1 <= a <= 109).
Формат выходных данных
Выведите одно целое число: количество способов провести измерения.

Ввод Вывод
1
5
2
4
4
9
6
0

Пояснения к примерам
В первом примере можно провести измерения в следующие пары часов: (1, 3), (1, 5), (2, 4), (3, 5).
Во втором примере продолжительности работы канала связи недостаточно, чтобы провести два
измерения.

 

Не про спиннеры

Формула

Саша совсем не любит спиннеры, поэтому он рисует в тетрадке. Он взял тетрадный лист из N × M клеточек и пронумеровал все клетки различными числами. Теперь ему стало интересно, сколько различных прямоугольников он может вырезать из этого листа бумаги по границам клеточек.
 
Программа получает на вход два числа N и M – размеры исходного листа. Все числа – целые положительные, не превосходящие 75000.

Программа должна вывести одно число – количество прямоугольников, которые можно вырезать из данного листа бумаги (весь лист целиком также считается одним из возможных прямоугольников).
 
Ввод Вывод Примечание
2
2
9
3
1
6


 

Периметр прямоугольника и длина диагонали

Формула

С клавиатуры вводятся два целых числа - стороны прямоугольника. Напишите программу нахождения его периметра и длины диагонали.
Выведите в первой строке периметр прямоугольника, во второй строке - длину его диагонали

Примеры

Входные данные Выходные данные
1 2 13 30
13.152946

Бумага для олимпиады

Формула

Лёлик решил провести у себя в школе олимпиаду. Для этого ему необходимо закупить много упаковок бумаги. Лёлику очень повезло, потому что один крупный канцелярский магазин объявил две рекламных акции: «купи A одинаковых товаров и получи еще один товар бесплатно», а также «купи B товаров по цене B-1 товара». 
Лёлик узнал, что одна пачка бумаги в этом магазине стоит n рублей. Теперь он хочет определить сколько упаковок бумаги он сможет купить на p рублей. Помогите ему. 
 
Формат ввода
На вход подаются четыре натуральных числа, разделенных пробелом: A, B, p и n (1 ≤   A ≤   100, 2 ≤   B ≤   100, 1 ≤   p, n ≤   10000). 
 
Формат вывода
Выведите единственное целое число — максимальное количество упаковок бумаги, которое сможет купить Лёлик. 

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

Выборы в USA

Формула

Выборы президента США проходят по непрямой схеме. Упрощённо схема выглядит так. Сначала выборы проходят по избирательным округам, на этих выборах голосуют избиратели (то есть все граждане, имеющие право голоса). Затем голосование проходит в коллегии выборщиков, на этих выборах каждый избирательный округ представлен одним выборщиком, который голосует за кандидата, победившего на выборах в данном
избирательном округе. Кандидатов в президенты несколько, но реально борьба разворачивается между двумя кандидатами от основных партий, поэтому для победы в выборах кандидату нужно обеспечить строго больше половины голосов в коллегии выборщиков. Но для того, чтобы выборщик проголосовал за данного кандидата, необходимо, чтобы в его избирательном округе этот кандидат также набрал строго больше половины
голосов избирателей. Известны случаи (например, в 2016 году), когда из-за такой непрямой избирательной системы в выборах побеждал кандидат, за которого проголосовало меньше избирателей, чем за другого кандидата, проигравшего выборы. 

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

Программа получает на вход два целых числа N и K (1 ≤ N ≤ 103 , 1 ≤ K ≤ 106 ) и должна вывести одно целое число – искомое количество избирателей.

Ввод Вывод Примечание
5
3
6
Чтобы данный кандидат получил большинство в коллегии
выборщиков, необходимо, чтобы 3 из 5 выборщиков
проголосовали за него, то есть кандидат должен одержать
победу в 3 округах. Каждый округ состоит из 3 избирателей,
поэтому для победы в округе необходимо набрать 2 голоса
в данном округе.
 

*Король-пекарь

Формула Целые числа

Король Роланд хочет стать пекарем и вести простой образ жизни. 
Королевская кухня покрыта кухонным фартуком, который разбит на квадраты со стороной A см. Роланд хочет повесить на фартук картину с изображением своей семьи. Он знает точку, с которой соприкасается левый нижний угол картины, а также ширину и высоту самой картины. И тут ему захотелось узнать количество квадратов, которые будут частично или полностью закрыты картиной.
Входные данные:
Первая строка содержит число A – сторону одного квадрата кухонного фартука.
Вторая и третья строки - числа X и Y – координаты левого нижнего угла картины.
Четвёртая и пятая строки - числа W и H – ширина и высота картины.
Ось OX направлена вправо, ось OY направлена вверх.
Левый нижний угол одного из квадратов кухонного фартука находится в начале координат. Все числа целые, не превосходящие 2×109 , числа A, W, H – положительные, числа X и Y – положительные или равны 0.
Выходные данные:
Вывести одно число – количество плиток, полностью или частично закрытых картиной.
Квадрат считается закрытым картиной, если пересечение картины и квадрата имеет ненулевую площадь, то есть касание картины и квадрата не считается перекрытием.

Пример

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

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

 

1

10 

15 

35 

20

12

Сторона квадрата (сторона клетки на рисунке) А = 10.
Левый нижний угол картины имеет координаты (15, 5), картина имеет ширину 35 см и высоту 20 см.
Картина полностью или частично закрывает 12 квадратов

Формула Вещественные числа

Напишите программу, которая вычисляет значение выражения


 
Программа должна запрашивать с клавиатуры ввод значений для чисел a   и   b (a и b целые числа, a>2 ),
и выводить на экран одно число

Примеры:
Тест 1

Входные данные:
4 2
Выходные данные
-21.80

Тест 2
Входные данные:
1 2
Выходные данные
27.25

Вещественные числа Формула

Напишите программу, которая вычисляет значение выражения

Программа должна запрашивать с клавиатуры ввод значения для числа Х (X>0 - целое число),
и выводить на экран одно число

Примеры:
Тест 1

Входные данные:
2
Выходные данные
-0,25

Тест 2
Входные данные:
1
Выходные данные
-1

Полоски радуги

Формула Целые числа

В школе  № 2007 на уроке информатики в системе SilverTests Васе попалась следующая задача: «В  младшей группе одного объединённого детского сада воспитательница  изучала с детишками  порядок цветов радуги. Она отыскала семь соответствующих цветных мелков и начала рисовать полоски, не нарушая последовательности цветов.  Начала она с красной полоски. Когда доходила до фиолетовой полоски, опять рисовала  красную. Воспитательница  успела нарисовать N полосок, когда у неё закончились  мелки. Напишите программу, которая вычисляет количество полосок каждого цвета».  Вася взялся писать программу, но тут обнаружилось, что на клавиатуре отсутствует клавиша с буквой  «i». Помогите Васе написать программу с учётом этого обстоятельства.

Входные данные: Вводится одно целое положительное число N > 0.
Выходные данные: Выведите ответ на задачу.

Если в коде программы встречается буква «i» система выдаст сообщение:  Использование запрещенных операторов
 
Примеры

Входные данные Выходные данные
1 3 'red - 1'
'orange - 1'
'yellow - 1'
'green - 0'
'blue - 0'
'sky - 0'
'purple - 0'