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


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

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

Длина последовательности

Цикл while

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

Входные данные: Вводится последовательность целых чисел, оканчивающаяся числом 0 (само число 0 в последовательность не входит).
Выходные данные: Выведите ответ на задачу.

Примеры
Входные данные Выходные данные
1 1
3
4
8
0
2
1
4

Пробежка

Цикл while

В первый день спортсмен пробежал x километров, а затем он каждый день увеличивал пробег на 10% от предыдущего значения. По данному числу y определите номер дня, на который пробег спортсмена составит не менее y километров.
 

Входные данные 
Программа получает на вход вещественные числа x и y (по одному числу в строке).

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

 

Примеры
Входные данные Выходные данные
1 10
20
9

Банковские проценты

Цикл while

Вклад в банке составляет x рублей. Ежегодно он увеличивается на p процентов, после чего дробная часть копеек отбрасывается. Определите, через сколько лет вклад составит не менее y рублей.

Входные данные
Программа получает на вход три натуральных числа: xpy (по одному числу в строке).

Выходные данные 
Программа должна вывести одно целое число.
 

 

Примеры
Входные данные Выходные данные
1 100
10
200
8

Раздвоитель

Цикл while

Исполнитель “Раздвоитель” преобразует натуральные числа. У него есть две команды: “Вычесть 1” и “Разделить на 2”, первая команда уменьшает число на 1, вторая команда уменьшает число в два раза, если оно чётное, иначе происходит ошибка.

Дано два натуральных числа A и B (\(A>B\)). Напишите алгоритм для Раздвоителя, который преобразует число A в число B и при этом содержит минимальное число команд. Команды алгоритма нужно выводить по одной в строке, первая команда обозначается, как -1, вторая команда как :2.

Входные данные
Вводятся два натуральных числа A и B (по одному числу в строке).

Выходные данные
Выведите ответ на задачу.
 

 

Примеры
Входные данные Выходные данные
1 100
1
:2
:2
-1
:2
:2
:2
-1
:2

Исполнитель Водолей

Цикл while

У исполнителя “Водолей” есть два сосуда, первый объемом A литров, второй объемом B литров, а также кран с водой. Водолей может выполнять следующие операции:

  1. Наполнить сосуд A (обозначается >A).
  2. Наполнить сосуд B (обозначается >B).
  3. Вылить воду из сосуда A (обозначается A>).
  4. Вылить воду из сосуда B (обозначается B>).
  5. Перелить воду из сосуда A в сосуд B (обозначается как A>B).
  6. Перелить воду из сосуда B в сосуд A (обозначается как B>A).

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

Входные данные: Программа получает на вход три натуральных числа A, B, N, не превосходящих 104.
Выходные данные: Необходимо вывести алгоритм действий Водолея, который позволяет получить в точности N литров в одном из сосудов, если же такого алгоритма не существует, то программа должна вывести текст Impossible.

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


Примеры
Входные данные Выходные данные
1 3
5
1
>A
A>B
>A
A>B
2 3
5
6
Impossible

Двоичный логарифм

Цикл while

По данному натуральному числу N выведите такое наименьшее целое число k, что \(2^k >= N.\) Операцией возведения в степень пользоваться нельзя!

Входные данные 
Вводится натуральное число N.

Выходные данные 
Выведите ответ на задачу.
 

 

Примеры
Входные данные Выходные данные
1 7 3

Числа Фибоначчи

Цикл while

Последовательность Фибоначчи определяется так:

\(\varphi_0=0, \varphi_1=1, ..., \varphi_{n}=\varphi_{n-1}+\varphi_{n-2}\).

По данному числу \(n\ge 1\) определите \(n\)-е число Фибоначчи \(\varphi_n\).

Входные данные
Вводится натуральное число n.

Выходные данные
Выведите ответ на задачу.
 

 

Примеры
Входные данные Выходные данные
1 6 8

Квадраты чисел

Цикл while

По данному натуральному числу N распечатайте в порядке возрастания все квадраты натуральных чисел, не превосходящие N.

Входные данные 
Вводится одно натуральное число.

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

 

Примеры
Входные данные Выходные данные
1 50 1 4 9 16 25 36 49

Элементы, большие предыдущего

Цикл while

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

Входные данные 
Вводится последовательность натуральных чисел (по одному числу в строке), оканчивающаяся числом 0 (само число 0 в последовательность не входит, а служит как признак ее окончания).

Выходные данные 
Выведите ответ на задачу.

Примеры
Входные данные Выходные данные
1 2
3
5
0
2

Сколько элементов, равных максимальному

Цикл while

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

Входные данные 
Вводится последовательность натуральных чисел, оканчивающаяся числом 0 (само число 0 в последовательность не входит, а служит как признак ее окончания).

Выходные данные 
Выведите ответ на задачу.
 

 

Примеры
Входные данные Выходные данные
1 9
7
0
1
2 1
3
3
1
0
2

Второй максимальный в последовательности

Цикл while

Последовательность состоит из различных натуральных чисел и завершается числом 0. Определите значение второго по величине элемента в этой последовательности.

Входные данные 
Вводится последовательность натуральных чисел, оканчивающаяся числом 0 (само число 0 в последовательность не входит, а служит как признак ее окончания).

Выходные данные 
Выведите ответ на задачу
 

 

Примеры
Входные данные Выходные данные
1 9
7
0
7

Сумма элементов последовательности - 2

Цикл while

Найдите сумму последовательности натуральных чисел, если признаком окончания последовательности является два подряд идущих числа 0. Числа стоящие после двух нулей в решении задачи участвовать не должны.

Входные данные 
Вводится последовательность натуральных чисел.

Выходные данные
Выведите ответ на задачу.
 

 

Примеры
Входные данные Выходные данные
1 2
0
7
0
9
0
0
3
18

Максимальное количество подряд равных

Цикл while

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

Входные данные
 Вводится последовательность натуральных чисел, оканчивающаяся числом 0 (само число 0 в последовательность не входит, а служит как признак ее окончания).

Выходные данные 
Выведите ответ на задачу.
 

 

Примеры
Входные данные Выходные данные
1 1
7
7
9
1
0
2

Стандартное отклонение

Цикл while

Дана последовательность натуральных чисел \(x_1, x_2, ..., x_n\)Стандартным отклонением называется величина

\(\sigma = \sqrt{\frac{(x_1-s)^2+(x_2-s)^2+\ldots+(x_n-s)^2}{n-1}}\),

где \(s=\frac{x_1+x_2+\ldots+x_n}{n}\) — среднее арифметическое последовательности.

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

Входные данные 
Вводится последовательность натуральных чисел, оканчивающаяся числом 0 (само число 0 в последовательность не входит, а служит как признак ее окончания).

Выходные данные 
Выведите ответ на задачу.
 

 

Примеры
Входные данные Выходные данные
1 1
7
9
0
4.16333199893

Максимальная длина монотонного фрагмента

Цикл while

Дана последовательность натуральных чисел, завершающаяся число 0. Определите наибольшую длину монотонного фрагмента последовательности (то есть такого фрагмента, где все элементы либо больше предыдущего, либо меньше).

Входные данные
Вводится последовательность натуральных чисел, оканчивающаяся числом 0 (само число 0 в последовательность не входит, а служит как признак ее окончания).

Выходные данные 
Выведите ответ на задачу.
 

 

Примеры
Входные данные Выходные данные
1 9
7
7
9
7
0
2

Обработка потока данных - 1

Цикл while

Дана непустая последовательность целых чисел, оканчивающаяся нулем. Ноль в последовательность не входит, служит признаком ее окончания. Найти сумму всех чисел последовательности, больших числа x. Если таких чисел в последовательности нет, то выведите 0.

Входные данные 
В первой строке задается число x, далее (со второй строки) задаются числа последовательности. Ноль - признак окончания ввода.

Выходные данные
Выведите ответ на задачу.
 

 

Примеры
Входные данные Выходные данные
1 3
5
3
4
7
0
16

Анализ цифр числа - 5

Цикл while

Дано натуральное число N (N<=109). Найти сумму его максимальной и минимальной цифр

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

№ теста Входные данные Выходные данные
1 45545 9
2 111 2

Анализ цифр числа - 7

Цикл while

Дано натуральное число N (N<=109) и цифра k. Определить произведение цифр числа N, которые больше, чем k. Если таких цифр нет, то необходимо вывести 0.

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

№ теста Входные данные Выходные данные
1 45545
4
125
2 1235
2
15

Анализ цифр числа - 10

Цикл while

Для заданного натурального числа n определите его первую цифру слева.

Входные данные
Программа получает на вход натуральное число (n <= 109).

Выходные данные
Выведите ответ на задачу.
 
 

Примеры
Входные данные Выходные данные
1 45545 4

Анализ цифр числа - 11

Цикл while

В первой строке вводится натуральное чило n 
Вывести на экран
-  произведение нечетных цифр числа
(считается, что хотя бы одна нечетная цифра в числе имеется)

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

№ теста Входные данные Выходные данные
1 45545 125

Анализ цифр числа - 12

Цикл while

В первой строке вводится натуральное чило n 
Вывести на экран
- сумму четных цифр числа n

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

№ теста Входные данные Выходные данные
1 65562 14

Анализ цифр числа - 2

Цикл while

Дано натуральное число N (N<=109). Определить порядковый номер его минимальной цифры, считая от начала числа (если таких цифр несколько, то вывести номер первой из них)

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

№ теста Входные данные Выходные данные
1 45545 1
2 100 2

Анализ цифр числа - 3

Цикл while

Дано натуральное число N (N<=109). Определить порядковый номер его максимальной цифры, считая от начала числа (если таких цифр несколько, то вывести номер первой из них)

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

№ теста Входные данные Выходные данные
1 45545 2
2 100 1

Анализ цифр числа - 4

Цикл while

Дано натуральное число N (N<=109). Определить порядковый номер его максимальной цифры, считая от конца числа (если таких цифр несколько, то вывести номер первой из них)

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

№ теста Входные данные Выходные данные
1 45545 1
2 100 3

Анализ цифр числа - 6

Цикл while

Дано натуральное число N (N<=109). Определить, на сколько его максимальная цифра превышает минимальную

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

№ теста Входные данные Выходные данные
1 45545 1
2 111 0

Анализ цифр числа - 8

Цикл while

Дано натуральное число N (N<=109). Определить, сколько раз в нем встречается последняя цифра (без учета последней цифры).

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

№ теста Входные данные Выходные данные
1 45545 2
2 445 0

Анализ цифр числа - 17

Цикл while

В первой строке вводится чило n >= 0
Во второй строке вводится цифра  B и число k
Вывести на экран
- слово YES, если цифра B встречается в числе больше k раз
- слово NO, если цифра B встречается в числе менее k раз
- число k, если цифра B встречается ровно k раз

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

№ теста Входные данные Выходные данные
1 45545
5 6
NO
 
2 45545
5 3
3

Обрабатываем цифры числа - 2

Цикл while

Дано натуральное число N. Определить сумму его цифр, больших z. Если таких цифр в числе нет, выведите 0.

Входные данные 
Вводятся два числа через пробел, сначала натуральное число N, затем - z (\(0<=z<=9\)).

Выходные данные
Выведите ответ на задачу.
 

 

Примеры
Входные данные Выходные данные
1 432 2 7

Обработка потока данных - 3

Цикл while

Дана непустая последовательность целых чисел, оканчивающаяся нулем. Ноль в последовательность не входит, служит признаком ее окончания. Найти произведение последних цифр всех чисел последовательности, больших числа 13. Если таких чисел нет, то выведите 0.

Входные данные 
На вход подаются числа последовательности (все числа не больше 100 по модулю). Ноль - признак окончания ввода. 

Выходные данные 
Выведите ответ на задачу (гарантируется, что ответ всегда меньше, чем 264).
 

 

Примеры
Входные данные Выходные данные
1 13
15
3
4
17
0
35

Анализ цифр числа - 18

Цикл while

В первой строке вводится натуральное чило n 
Во второй строке вводится цифра  B
Вывести на экран слово YES, если цифра B не встречается в числе 
слово NO, если цифра B встречается в числе 

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

№ теста Входные данные Выходные данные
1 45545
6
YES

Анализ цифр числа - 19

Цикл while

Входные данные
В первой строке вводится натуральное чило n.  Во второй строке вводятся цифры A и B.

Выходные данные
Вывести на экран букву A (англ.), если цифра A встречается в числе чаще цифры B, букву B (англ.), если цифра B встречается в числе чаще цифры A. Выведите знак =, если цифра A и цифра B встречаются одинаковое количество раз.
 
 

Примеры
Входные данные Выходные данные
1 45545
4 5
B
2 12221
2 1
A

Анализ цифр числа - 13

Цикл while

В первой строке вводится натуральное чило n 
Вывести на экран максимальную цифру числа n

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

№ теста Входные данные Выходные данные
1 102983 9

Обрабатываем цифры числа - 3

Цикл while

Дано натуральное число N, которое не содержит цифры 0. Определите произведение его цифр, кратных z. Если в числе нет цифр кратных z, то выведите 0.

Входные данные 
Вводятся два числа через пробел, сначала натуральное число N, затем - z (\(0 < z <= 9\)).

Выходные данные 
Выведите ответ на задачу.

 

Примеры
Входные данные Выходные данные
1 432 2 8

Анализ цифр числа - 14

Цикл while

В первой строке вводится натуральное чило n 
Во второй строке вводится число B
Вывести на экран
-  слово YES, если сумма его цифр больше числа В, а само число четное
-  в противном случае вывести слово NO

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

№ теста Входные данные Выходные данные
1 45545 
15
NO
 
2 554
5
YES
 

Анализ цифр числа - 15

Цикл while

В первой строке вводится натуральное чило n 
Во второй строке вводится число B
Вывести на экран
-  слово YES, если само число и сумма его цифр кратны числу B
-  в противном случае вывести слово NO

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

№ теста Входные данные Выходные данные
1 45545 
5
NO
 
2 555
5
YES

Анализ цифр числа - 16

Цикл while

В первой строке вводится чило n >=0 
Вывести на экран:

  • знак >, если первая цифра больше последней;
  • знак <, если первая цифра меньше последней;
  • знак =, если первая и последние цифры равны.

Пример входных и выходных данных
№ теста Входные данные Выходные данные
1 45545 <
 
2 44 =

Наибольшая длина монотонного фрагмента

Цикл while

Дана последовательность натуральных чисел, завершающаяся число 0 (0 не входит в последовательность). Определите наибольшую длину монотонного фрагмента последовательности (то есть такого фрагмента, где все элементы либо больше предыдущего, либо меньше).

Числа, следующие за числом 0, считывать не нужно.

Входные данные: Дана последовательность натуральных чисел, завершающаяся число 0.

Выходные данные: Выведите ответ на задачу.

Примеры
Входные данные Выходные данные
1 1
7
7
8
1
0
2

Количество локальных максимумов

Цикл while

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

Дана последовательность натуральных чисел, признаком конца которой является число 0 (0 не входит в последовательность). Определите количество строгих локальных максимумов в этой последовательности. 

Числа, следующие за числом 0, считывать не нужно.

Входные данные: Дана последовательность натуральных чисел, признаком конца которой является число 0.
Выходные данные: Выведите ответ на задачу.

Примеры
Входные данные Выходные данные
1 1
2
1
2
1
0
2

* Две самые большие цифры - 2

Цикл while

Дано натуральное число N (\(N<=10^9\)). Определить две самые большие цифры числа. 

Входные данные 
На вход подается натуральное число.

Выходные данные 
Выведите две цифры через пробел, сначала наибольшую цифру числа, затем вторую по величине (не равную первой наибольшей цифре). Если число состоит из одинаковых цифр - выведите NO.
 

 

Примеры
Входные данные Выходные данные
1 45545 5 4
2 111 NO

Вложенные циклы - 1

Цикл for Цикл while Циклы

Вводятся два числа N и K. Выведите количество чисел из диапазона от 1 до N (включительно) таких, что их сумма цифр делится на K.
 
Примеры
Входные данные Выходные данные
1 100 3 33
2 22 4 5

Обработка вводимых чисел - 4

Цикл while

Вводится последовательность целых чисел до тех пор, пока не будет введено два равных числа подряд. Посчитать количество чисел в последовательности (включая два последних).
 
Пример входа
3
5
24
4
3
5
3
5
3
5
5
 
Пример вывода
11

Анализ цифр числа - 1

Цикл while

Дано натуральное число N (N<=109). Определить порядковый номер его минимальной цифры, считая от конца числа (если таких цифр несколько, то вывести номер первой из них)

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

№ теста Входные данные Выходные данные
1 45545 2
2 100 1
.

Сумма элементов последовательности

Цикл while

На вход программы поступает поток данных — последовательность целых чисел, которая заканчивается нулём (ноль не входит в последовательность). Требуется найти сумму элементов этой последовательности.

Входные данные
На вход программе подаются числа, по одному числу в строке.

Выходные данные
Выведите ответ на задачу.
 

 

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

 

Год Коровы

Цикл while Задачи на моделирование

Известно, что в Китайском календаре года следуют 12-летнему циклу: Ox(Бык), Tiger(Тигр), Rabbit(Кролик), Dragon(Дракон), Snake(Змея), Horse(Лошадь), Goat(Коза), Monkey(Обезьяна), Rooster(Петух), Dog(Собака), Pig(Свинья), Rat(Крыса), и затем Ox опять. 
Уже много лет корова Беси гордится, что она родилась в год Быка. Её подружка Эльза хочет узнать сколько лет отделяет её рождение от рождения Беси и надеется, что вы поможете ей узнать это, основываясь на отношениях между датами рождения некоторых коров на ферме.



Входные данные
Первая строка ввода содержит целое число N (\(1<=N<=100\)). Каждая из следующих N строк содержит 8-словную фразу указывающую отношение между датами рождения двух коров. В следующей форме

"Mildred born in previous Dragon year from Bessie",

или

"Mildred born in next Dragon year from Bessie" (previous - предыдуший, next-следующий).

Последнее слово - имя коровы, которое или Bessie или корова ранее упомянутая в предыдущей строке ввода.
Первое слово - имя коровы, которая не Bessie и ещё не упоминалась на вводе. Все имена коров имеют не более 10 символов a..z или A..Z.

5-ое слово - один из знаков зодиака, указаных ранее.

4-ое слово либо "previous" либо "next". Например, фраза "Mildred born in previous Dragon year from Bessie", означает, что год рождения Mildred был год Дракона(Dragon), ближайший и строго раньше (не равен) года рождения Беси.



Выходные данные
Выведите количество лет, на которое отличаются дни рождения Беси и Эльзы. Гарантируется, что это число может быть определено из введённых данных.
 
 
Примеры
Входные данные Выходные данные Примечание
1 4
Mildred born in previous Dragon year from Bessie
Gretta born in previous Monkey year from Mildred
Elsie born in next Ox year from Gretta
Paulina born in next Dog year from Bessie
12

В примере выше

  • Elsie родилась на 12 лет раньше Bessie.
  • Mildred родилась на 9 лет раньше Bessie.
  • Gretta родилась на 17 лет раньше Bessie.
  • Paulina родилась на 9 лет раньше Bessie.

Слишком много кофеина

Строки Цикл while

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

Однажды друзья познакомили Артура с девушкой по имени Нина (о, какое прекрасное имя!). Она была очаровательна и очень болтлива, поэтому Артуру почти не нужно было подбирать слова — она заполняла неловкую тишину за него. Разумеется, он пригласил ее в кафе выпить чашечку кофе. Артур даже продумал все свои реплики заранее: «Счастлив тебя видеть», «Ты сегодня восхитительна», «Да, конечно, я внимательно тебя слушаю», «И что дальше?», «Счет, пожалуйста» и, конечно, «Я позвоню тебе на днях, не скучай».

Но, как известно, не бывает идеальных планов. Все шло как по маслу, но вдруг, сидя за столиком в кафе, Нина сказала, что ужасно не выспалась и не отказалась бы от N чашек кофе. И тут Артур понял, что он не обдумал заранее, как он будет делать заказ. Понятно, что нужно сказать что-то вроде: «Сколько-то чашек кофе, пожалуйста», но вот сколько же чашек нужно, чтобы Нина так и не поняла, что Артур не выговаривает букву «р»? Явно нужно заказать не меньше, чем N + 1 чашку — чтобы и Нине досталось N чашек, и самому выпить, но вот сколько точно — Артур не знает. Денег у него не слишком много, поэтому заказывать больше, чем жизненно необходимо для того, чтобы избежать разоблачения, Артур не хочет.

Помогите Артуру — посчитайте, сколько чашек кофе он должен заказать.

Входные данные
Вводится одно целое число N (1 ≤ N ≤ 2999).

Выходные данные
Выведите одно число — количество чашек кофе, которое должен заказать Артур.

Примеры
Входные данные Выходные данные
1 1 2
2 12 15

Последовательности

Цикл while

Рассмотрим последовательности чисел. Первая последовательность состоит из одного числа K. Каждая следующая последовательность чисел описывает предыдущую по такому правилу.

Просматриваем описываемую последовательность слева направо и разбиваем на отрезки, состоящие из подряд идущих равных чисел (причем все идущие подряд одинаковые числа всегда объединяем в один отрезок). Далее каждый такой отрезок описываем двумя числами — первое число говорит, сколько раз повторяется одно и то же число, второе число говорит, какое именно число повторяется. Записываем эти пары последовательно в соответствии с отрезками слева направо, и получаем новую последовательность (см. примеры ниже).

Например, для K=2 последовательности получатся такими:

Последовательность Как ее читать (слова в описании соответствуют числам текущей последовательности слева направо, и описывают предыдущую последовательность)
1 2 Исходная последовательность
2 1 2 Одна «двойка»
3 1 1 1 2 Одна «единица», одна «двойка»
4 3 1 1 2 Три «единицы», одна «двойка»
5 1 3 2 1 1 2 Одна «тройка», две «единицы», одна «двойка»
6 1 1 1 3 1 2 2 1 1 2 Одна «единица», одна «тройка», одна «двойка», две «единицы», одна «двойка»

Напишите программу, которая по исходному числу K напечатает N-ую получающуюся последовательность.

Входные данные
Вводится число K (1 ≤ K ≤ 9) и число N (1 ≤ N ≤ 15).

Выходные данные
Ваша программа должна печатать N-ую последовательность, полученную из начальной последовательности, состоящей из одного числа K. Числа при выводе следует разделять пробелами.
 
Примеры
Входные данные Выходные данные
1 2
6
1 1 1 3 1 2 2 1 1 2 
2 2
1
2
3 1
3
2 1

Чехарда

Цикл while Жадный алгоритм

Дорожка замощена плитками в один ряд, плитки пронумерованы числами от 1 до 1000. На плитках с номерами A, B и C (A < B < C) сидят три кузнечика, которые играют в чехарду по следующим правилам:
1. На одной плитке может находиться только один кузнечик.
2. За один ход один из двух крайних кузнечиков (то есть с плитки A или с плитки C) может перепрыгнуть через среднего кузнечика (плитка B) и встать на плитку, которая находится ровно посередине между двумя оставшимися кузнечиками (то есть между B и C или A и B соответственно). Если между двумя оставшимися кузнечиками находится чётное число плиток, то он может выбрать любую из двух центральных плиток.
Например, если кузнечики первоначально сидели на плитках номер 1, 5, 10, то первым ходом кузнечик с плитки номер 10 может перепрыгнуть на плитку номер 3 (она находится посередине между 1 и 5), или кузнечик с плитки номер 1 может перепрыгнуть на плитку номер 7 или 8 (эти две плитки находятся посередине между плитками 5 и 10).
Даны три числа: A, B, C. Определите, какое наибольшее число ходов может продолжаться игра.

Формат входных данных
Программа получает на вход три целых числа A, B и C (1 <= A < B < C <= 1000), записанных в отдельных строках.
Формат выходных данных
Выведите одно число — наибольшее количество ходов, которое может продолжаться игра.
 

Ввод Вывод Примечание
1
4
6
2 В примере сначала кузнечик с плитки №6 прыгает на плитку №3. Затем кузнечик с плитки №4 прыгает на плитку №2.

Управляющий совет

Цикл while Целые числа Бинарный поиск по ответу

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

Формат входных данных
Программа получает на вход два целых числа N и K (N > 0, 0 ≤ KN), записанные в отдельных строках, — текущее число членов совета и число родителей в совете.

Формат выходных данных
Программа должна вывести единственное число — минимальное число родителей, которое необходимо ввести в совет.

Пояснение к примеру
В примере совет состоит из 27 человек, из которых родители составляют 7 человек. Если в совет ввести ещё 3 родителей, то в совете станет 30 человек, из которых родителей будет 10.

Блины

Цикл while Одномерные массивы Циклы

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

N гостей сидят за столом, и перед каждым стоит тарелка с блинами. На тарелке i-го гостя лежит ai блинов. Каждый гость съедает один блин за одну минуту, таким образом, время, когда закончит есть блины последний человек, равно наибольшему значению из ai.

Неожиданно к ним присоединился ещё один человек, и теперь все присутствующие могут переложить часть своих блинов (в том числе могут переложить все свои блины, а могут не перекладывать ни одного блина) вновь пришедшему человеку. Перекладывание блинов происходит одновременно и моментально.

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

Программа получает на вход натуральное число N, не превосходящее 100.000, – первоначальное количество гостей. Следующие N строк содержат натуральные числа ai – количество блинов на тарелке i-го человека. Значения ai даны в порядке неубывания, то есть ai ≤ ai+1. Сумма значений всех ai не превосходит 2·109.

Программа должна вывести одно целое число – минимальное время, за которое все гости закончат есть свои блины после перекладывания части блинов на тарелку нового гостя.

Примеры
Входные данные Выходные данные Пояснение
1 4
1
3
5
6
4 За столом сидят 4 человека, у них на тарелках 1, 3, 5, 6 блинов. Новому гостю последний гость отдаст 2 блина, а предпоследний – 1 блин, и тогда у всех, включая нового гостя, будет не более 4 блинов.

Забавная игра

Цикл while Двоичная система счисления

Легендарный учитель математики Юрий Петрович придумал забавную игру с числами. А именно, взяв произвольное целое число, он переводит его в двоичную систему счисления, получая некоторую последовательность из нулей и единиц, начинающуюся с единицы. (Например, десятичное число 1910 = 1·24+0·23+0·22+1·21+1·20 в двоичной системе запишется как 100112.) Затем учитель начинает сдвигать цифры полученного двоичного числа по циклу (так, что последняя цифра становится первой, а все остальные сдвигаются на одну позицию вправо), выписывая образующиеся при этом последовательности из нулей и единиц в столбик — он подметил, что независимо от выбора исходного числа получающиеся последовательности начинают с некоторого момента повторяться. И, наконец, Юрий Петрович отыскивает максимальное из выписанных чисел и переводит его обратно в десятичную систему счисления, считая это число результатом проделанных манипуляций. Так, для числа 19 список последовательностей будет таким:
10011
11001
11100
01110
00111
10011

и результатом игры, следовательно, окажется число 1·24+1·23+1·22+0·21+0·20 = 28.

Поскольку придуманная игра с числами все больше занимает воображение учителя, отвлекая тем самым его от работы с ну очень одаренными школьниками, Вас просят написать программу, которая бы помогла Юрию Петровичу получать результат игры без утомительных ручных вычислений.
Формат входных данных
Входной файл содержит одно целое число N (0 ≤ N ≤ 32767).
Формат выходных данных
Ваша программа должна вывести в выходной файл одно целое число, равное результату игры.

Примеры
Входные данные Выходные данные
1 19 28

Числовые печеньки

Целые числа Цикл while Условный оператор

Громозека любит числовые печеньки. Среди всех числовых печенек Громозека ест только такие, на которых сумма цифр записанного числа в десятичной системе счисления является делителем самого числа. Вам дается число, записанное на печеньке. Определите будет ли ее есть Громозека или нет.

Входные данные
На вход подается целое число N (1<=N<=109).

Выходные данные
Выведите ответ Yes, если Громозека будет есть такую печеньку, No - если не будет.
 

 

Примеры
Входные данные Выходные данные
1 12 Yes
2 101 No

 

Бегом до Стекляшкина

Цикл while Цикл for

После того как жук налетел на Незнайку и ударил его по голове, Незнайка собрал вокруг себя N коротышек Цветочного города и сообщил "И вот, братцы, от солнца оторвался кусок и летит прямо к нам. Скоро он упадёт и всех нас задавит. Ужас что будет! Вот пойдите спросите Стекляшкина." Все коротышки знали, что Незнайка болтун, но все-таки решили побежать по быстрее к Стекляшкину и узнать правду. Стекляшкин живет на той же улице, так что коротышкам пришлось бежать по одной прямой. Через 10 секунд i-й коротышка убежал от Незнайки на расстояние ai. Определите максимальное  расстояние между двумя любыми коротышками, которые побежали к Стекляшкину. 

Входные данные
В первой строке записано целое число N (1<=N<=100). Во второй строке записаны N чисел ai (1<=ai<=109) - расстояние, на которое убежал i-й коротышка от Незнайки.

Выходные данные
Выведите максимальное  расстояние между двумя любыми коротышками, которые побежали к Стекляшкину.
 

Примеры
Входные данные Выходные данные
1 4
1 4 6 3
5
2 5
1 1 1 1 1
0

Разность количества конфет

Цикл while Цикл for

У вас есть N мешков с конфетами. В каждом мешке некоторое количество конфет. Определите максимальную разность количества конфет двух любых мешков.

Входные данные
В первой строке записано целое число N (1<=N<=100). Во второй строке записаны N чисел ai (1<=ai<=109) - количество конфет в  i-м мешке.

Выходные данные
Выведите максимальную разность количества конфет двух любых мешков.
 

Примеры
Входные данные Выходные данные
1 4
1 4 6 3
5
2 5
1 1 1 1 1
0

Минимальный делитель

Простые числа и разложение на множители Цикл while

Найдите самый маленький натуральный делитель числа x, отличный от 1 (2 <= x <= 30000).

Входные данные
Вводится натуральное число x.

Выходные данные
Выведите наименьший делитель числа x, отличный от 1.

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

Ноль или не ноль

Цикл while

Проверьте, есть ли среди данных N чисел нули.


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

Вводится число N, а затем чисел.


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

Выведите YES, если среди введенных чисел есть хотя бы один нуль, или NO в противном случае.

Примеры

Входные данные Выходные данные
1 3
4
19
14
 
NO

Различные квадраты

Цикл while

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

Входные данные
На вход подаётся целое число n (1 ≤ n ≤ 1018). Обратите внимание, что для хранения такого числа требуется 64-битный тип данных (int64 в паскале, long long в C++).

Выходные данные
Выведите одно число — максимальное число различных квадратов, которое сможет сложить Петя.
 

Примеры
Входные данные Выходные данные
1 10 2

Максимум последовательности

Цикл while

Последовательность состоит из натуральных чисел, не превосходящих 109, и завершается числом 0. Определите значение наибольшего элемента последовательности.


Входные данные
Вводится последовательность целых чисел, оканчивающаяся числом 0 (само число 0 в последовательность не входит, а служит как признак ее окончания).

Выходные данные
Выведите ответ на задачу.
 
Примеры
Входные данные Выходные данные
1 2
6
9
8
0
9

Две одинаковые цифры рядом

Цикл while

Напишите программу, которая определяет, верно ли, что введённое число содержит две одинаковых цифры, стоящие рядом (как, например, 221).


Входные данные
Программа получает на вход одно натуральное число N (N > 9).


Выходные данные
Программа должна вывести слово 'YES', если в числе есть две одинаковые цифры, стоящие рядом, и слово 'NO', если такой пары цифр нет.

 
Примеры
Входные данные Выходные данные
1 1221 YES
2 123 NO

Слаймы

Цикл while

У Громозеки есть A слаймов. Каждый раз, когда Громозека чихает, количество слаймов увеличивается в K раз. Какое минимальное количество раз Громозеке нужно чихнуть, чтобы получить B или больше слаймов?


Входные данные
На вход подается три целых положительных числа A, B (1 <= A <= B <= 109), K (2 <= K <= 109).  

Выходные данные
Выведите на экран ответ на задачу
 

Примеры
Входные данные Выходные данные
1
1 4 2
2
2
31 415926 5
6

Водолей

Циклы Цикл while

У исполнителя “Водолей” есть два сосуда, первый объемом A литров, второй объемом B литров, а также кран с водой. Водолей может выполнять следующие операции:

  1. Наполнить сосуд A (обозначается >A).
  2. Наполнить сосуд B (обозначается >B).
  3. Вылить воду из сосуда A (обозначается A>).
  4. Вылить воду из сосуда B (обозначается B>).
  5. Перелить воду из сосуда A в сосуд B (обозначается как A>B).
  6. Перелить воду из сосуда B в сосуд A (обозначается как B>A).

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



Входные данные
Программа получает на вход три натуральных числа A, B, N, не превосходящих 104.

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

Необходимо вывести алгоритм действий Водолея, который позволяет получить в точности N литров в одном из сосудов, если же такого алгоритма не существует, то программа должна вывести текст Impossible.

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

 
Примеры
Входные данные Выходные данные
1
3
5
1
>A
A>B
>A
A>B
2
3
5
6
Impossible

Вкусное число

Цикл while

Громозека считает натуральное число вкусным, если все его цифры различны и сумма цифр этого числа равна числу, написанному на печеньке, которую ест Громозека.
Сейчас Громозека ест печеньку, на которой написано число n. Помогите ему определить наименьшее вкусное число для такой печеньки.
Например, если n = 10, то наименьшее вкусное число 19 (1+9=10, все цифры числа 19 различные).

Входные данные
Программа получает на вход целое число n (1 <= n <= 45).

Выходные данные
Выведите ответ на задачу.
 
 

Примеры
Входные данные Выходные данные
1 10 19
2 1 1

Сумма элементов последовательности (java)

Цикл while

На вход программы поступает поток данных — последовательность целых чисел, которая заканчивается нулём (ноль не входит в последовательность). Требуется найти сумму элементов этой последовательности.

Входные данные
На вход программе подаются числа, по одному числу в строке.

Выходные данные
Выведите ответ на задачу.
 

 

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

 

Элементы, большие предыдущего (java)

Цикл while

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

Входные данные 
Вводится последовательность натуральных чисел (по одному числу в строке), оканчивающаяся числом 0 (само число 0 в последовательность не входит, а служит как признак ее окончания).

Выходные данные 
Выведите ответ на задачу.

Примеры
Входные данные Выходные данные
1 2
3
5
0
2

Сколько элементов, равных максимальному (java)

Цикл while

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

Входные данные 
Вводится последовательность натуральных чисел, оканчивающаяся числом 0 (само число 0 в последовательность не входит, а служит как признак ее окончания).

Выходные данные 
Выведите ответ на задачу.
 

 

Примеры
Входные данные Выходные данные
1 9
7
0
1
2 1
3
3
1
0
2

Второй максимальный в последовательности (java)

Цикл while

Последовательность состоит из различных натуральных чисел и завершается числом 0. Определите значение второго по величине элемента в этой последовательности.

Входные данные 
Вводится последовательность натуральных чисел, оканчивающаяся числом 0 (само число 0 в последовательность не входит, а служит как признак ее окончания).

Выходные данные 
Выведите ответ на задачу
 

 

Примеры
Входные данные Выходные данные
1 9
7
0
7

Сумма элементов последовательности - 2 (java)

Цикл while

Найдите сумму последовательности натуральных чисел, если признаком окончания последовательности является два подряд идущих числа 0. Числа стоящие после двух нулей в решении задачи участвовать не должны.

Входные данные 
Вводится последовательность натуральных чисел.

Выходные данные
Выведите ответ на задачу.
 

 

Примеры
Входные данные Выходные данные
1 2
0
7
0
9
0
0
3
18

Числа Фибоначчи - 2

Цикл while

Последовательность Фибоначчи определяется так:

\(\varphi_0=0, \varphi_1=1, ..., \varphi_{n}=\varphi_{n-1}+\varphi_{n-2}\).

По данному числу \(n\ge 1\) определите \(n\)-е число Фибоначчи \(\varphi_n\).

Входные данные
Вводится натуральное число n.

Выходные данные
Выведите ответ на задачу.
 

 

Примеры
Входные данные Выходные данные
1 6 8

Максимальное количество подряд равных (java)

Цикл while

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

Входные данные
 Вводится последовательность натуральных чисел, оканчивающаяся числом 0 (само число 0 в последовательность не входит, а служит как признак ее окончания).

Выходные данные 
Выведите ответ на задачу.
 

 

Примеры
Входные данные Выходные данные
1 1
7
7
9
1
0
2

Обрабатываем цифры числа - 2 (java)

Цикл while

Дано натуральное число N. Определить сумму его цифр, больших z. Если таких цифр в числе нет, выведите 0.

Входные данные 
Вводятся два числа через пробел, сначала натуральное число N, затем - z (\(0<=z<=9\)).

Выходные данные
Выведите ответ на задачу.
 

 

Примеры
Входные данные Выходные данные
1 432 2 7

Обрабатываем цифры числа - 3 (java)

Цикл while

Дано натуральное число N, которое не содержит цифры 0. Определите произведение его цифр, кратных z. Если в числе нет цифр кратных z, то выведите 0.

Входные данные 
Вводятся два числа через пробел, сначала натуральное число N, затем - z (\(0 < z <= 9\)).

Выходные данные 
Выведите ответ на задачу.

 

Примеры
Входные данные Выходные данные
1 432 2 8

Обработка потока данных - 1 (java)

Цикл while

Дана непустая последовательность целых чисел, оканчивающаяся нулем. Ноль в последовательность не входит, служит признаком ее окончания. Найти сумму всех чисел последовательности, больших числа x. Если таких чисел в последовательности нет, то выведите 0.

Входные данные 
В первой строке задается число x, далее (со второй строки) задаются числа последовательности. Ноль - признак окончания ввода.

Выходные данные
Выведите ответ на задачу.
 

 

Примеры
Входные данные Выходные данные
1 3
5
3
4
7
0
16

Обработка потока данных - 3 (java)

Цикл while

Дана непустая последовательность целых чисел, оканчивающаяся нулем. Ноль в последовательность не входит, служит признаком ее окончания. Найти произведение последних цифр всех чисел последовательности, больших числа 13. Если таких чисел нет, то выведите 0.

Входные данные 
На вход подаются числа последовательности (все числа не больше 100 по модулю). Ноль - признак окончания ввода. 

Выходные данные 
Выведите ответ на задачу (гарантируется, что ответ всегда меньше, чем 264).
 

 

Примеры
Входные данные Выходные данные
1 13
15
3
4
17
0
35

* Две самые большие цифры - 2 (java)

Цикл while

Дано натуральное число N (\(N<=10^9\)). Определить две самые большие цифры числа. 

Входные данные 
На вход подается натуральное число.

Выходные данные 
Выведите две цифры через пробел, сначала наибольшую цифру числа, затем вторую по величине (не равную первой наибольшей цифре). Если число состоит из одинаковых цифр - выведите NO.
 

 

Примеры
Входные данные Выходные данные
1 45545 5 4
2 111 NO

Василий собирает ягоды

Цикл while Целые числа Бинарный поиск по ответу Вывод формулы

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


Входные данные
Программа получает на вход два целых числа N и K (N > 0, 0 ≤ K ≤ N, K<=109, N<=2*109), записанные в отдельных строках, — текущее количество ягод в корзинке медведя Василия и количество ягод малины в корзинке.

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

 

Примеры
Входные данные Выходные данные Примечание
1 27
7
3 В примере всего ягод в корзинке 27, из которых малины 7 ягод.
Если в собрать ещё 3 ягоды малины, то в корзинке станет 30 ягод, из которых малины будет 10.

 

Длина равных

Цикл while

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

Входные данные
Вводится последовательность целых чисел, оканчивающаяся числом 0 (само число 0 в последовательность не входит, а служит как признак ее окончания).

Выходные данные
Выведите ответ на задачу.
 
 

Примеры
Входные данные Выходные данные
1 2
2
2
3
3
1
1
1
1
0
4

Цифровой корень числа

Цикл while

Цифровой корень натурального числа получается следующим образом. Складываются все цифры данного числа. Процесс повторяется, пока в результате не будет получено однозначное число, которое и называется цифровым корнем числа.


Формат входных данных
На вход программе подается натуральное число n <= 1018.
 
Формат выходных данных
Выведите его цифровой корень.

Василий собирает ягоды

Цикл while Целые числа Бинарный поиск по ответу Вывод формулы

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

Формат входных данных
Программа получает на вход два целых числа N и K (N > 0, 0 ≤ K ≤ N, K<=109, N<=2*109), записанные в отдельных строках, — текущее количество предметов и количество любимых предметов, которые Летовец уже выбрал.

Формат выходных данных
Выведите единственное число — минимальное число любимых предметов, которые необходимо выбрать.

Примечение
В примере всего предметов 27, из которых любимых 7.
Если в выбрать ещё 3 любимых предмета, то всего станет 30 предметов, из которых любимых будет 10.
 

Цифра в числе

Условный оператор Цикл while Целые числа

Входные данные
Вводятся 2 числа: x и d.

Выходные данные
Подсчитайте и выведите одно число - сколько раз встречается в записи натурального числа x цифра d.

Переверни число

Целые числа Цикл while

Входные данные
Вводится натуральное число x

Выходные данные
Выведите число, состоящее из цифр данного числа x в обратном порядке. Ведущие нули выводить не нужно.

 

Перевод числа

Двоичная система счисления Цикл while

Переведите натуральное число из двоичной системы в десятичную (в двоичном числе не более 10 цифр).

Входные данные
Вводится натуральное число, записанное в двоичной системе.

Выходные данные
Выведите число, записанное в десятичной системе.

Утренняя пробежка - 1

Цикл for Вещественные числа Цикл while

В первый день спортсмен пробежал x километров, а затем он каждый день увеличивал пробег на 70% от предыдущего значения. По данному числу y определите номер дня, на который пробег спортсмена составит не менее y километров.

Входные данные
На вход программа получает два действительных числа x и y. Числа положительные, действительные, не превосходят 1000, заданы с точностью до шести знаков после запятой.

Выходные данные
Программа должна вывести единственное целое число.

Утренняя пробежка - 2

Вещественные числа Цикл while

В первый день спортсмен пробежал x километров, а затем он каждый день увеличивал пробег на 70% от предыдущего значения. По данному числу y определите номер дня, на который суммарный пробег спортсмена составит не менее y километров.

Входные данные
На вход программа получает два действительных числа x и y . Числа положительные, действительные, не превосходят 1000, заданы с точностью до шести знаков после запятой.
Внимание! В некоторых тестах оба числа находятся на одной строке, а в некоторых — на разных!

Выходные данные
Программа должна вывести единственное целое число.

Калькулятор

Цикл while

У исполнителя Калькулятор две команды:

прибавь 1

умножь на 4

Выполняя первую из них, Калькулятор прибавляет к числу на экране 1, а выполняя вторую, умножает число на экране на 4. Запишите порядок команд в программе для получения из нуля числа N.

Входные данные
Вводится одно натуральное число N, не превосходящее 1000.

Выходные данные
Выведите последовательность из команд 1 (прибавь 1) и 4 (умножь на 4), разделенные пробелами. Если решений несколько, выведите любое из них.

Никаких котлет

Цикл while

В салон красоты пришли n девушек. Каждая из них должна посетить парикмахера и косметолога. У каждого она проводит по m часов. За какое наименьшее время k сотрудников салона красоты смогут обслужить всех девушек, если каждый сотрудник может выполнять функции как косметолога, так и парикмахера?

Входные данные
Вводится три натуральных числа k, m, n, не превосходяших 10 000.

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

Hallowen