Задачи для начинающих

advertisement
Задача Красная шапочка
Красная Шапочка часто навещает свою бабушку. Но она очень боится, что рано или поздно ее бабушку опять
навестит волк. Поэтому она решила договориться с Лесничим об охране бабушки. Лесничий согласился охранять
бабушку за 10 пирожков.
Узнав об этом, волк сказал Красной Шапочке, что ей совершенно незачем тратить пирожки на Лесничего. За
половину тех пирожков, которые Красная Шапочка несет бабушке, Волк пообещал не трогать ее.
Сегодня (26 ноября) в России отмечается день матери. Мама испекла несколько пирожков, и попросила Красную
Шапочку отнести их бабушке. Требуется определить, сколько пирожков Красная Шапочка сможет донести до бабушки.
Входные данные
Вводится одно четное число - количество пирожков, которые испекла мама.
Выходные данные
Программа должна вывести одно число - количество пирожков, которые Красная Шапочка сможет донести до бабушки.
Примеры
Входные
данные
Выходные
данные
Комментарий
12
6
Если мама испекла 12 пирожков, то выгоднее отдать половину пирожков (6 штук)
волку, чем 10 пирожков Лесничему. В этом случае Красная Шапочка сможет донести до
бабушки 12-6=6 пирожков.
100
90
Если мама испекла 100 пирожков, то выгоднее отдать 10 пирожков Лесничему, чем
половину (50 пирожков) волку. До бабушки в этом случае Красная Шапочка донесет
100-10=90 пирожков.
20
10
Если испечено 20 пирожков, то в любом случае (и если отдать половину пирожков
Волку, и если отдать 10 пирожков Лесничему) бабушке останется 10 пирожков.
Ограничения
Решение задачи будет проверяться на тестовых примерах, в которых число испеченных мамой пирожков - натуральное
число, не превосходящее 100.
Задача Круглые числа
Будем называть числа круглыми, если они содержат в своей записи только цифры 0 и 5. Составим последовательность
неотрицательных целых круглых чисел в порядке возрастания: 0, 5, 50, 55, 500, 505 и так далее.
Написать программу, которая находит K-е по порядку в этой последовательности круглое число.
Входные данные
Вводится одно натуральное число K - номер круглого числа в порядке возрастания.
Выходные данные
Программа должна вывести круглое число с заданным номером.
Примеры
Входные данные
Выходные данные
Комментарий
2
5
5 - второе круглое число
6
505
505 - шестое круглое число
Ограничения
В тестовых примерах, на которых проверяется задача, вводится натуральное число, не превышающее 500.
Задача Квадратные таблицы
Вася записывает в клетки квадратной таблицы NxN натуральные числа по порядку, сначала заполняя первую строку
слева направо, затем вторую и т.д. (см. рисунок слева). Петя заполняет такую же таблицу, расставляя числа сначала в
первый столбец сверху вниз, затем во второй столбец и т.д.
При этом оказалось, что некоторые числа и Вася, и Петя записали в одну и ту же клетку (например, число 6 записано во
вторую строку второго столбца обеих таблиц).
Вам требуется написать программу, выводящую все числа, которые в обеих таблицах записаны в одних и тех же
клетках.
Входные данные
Вводится одно число - размер таблицы.
Выходные данные
Программа должна вывести все числа, которые в обеих таблицах стоят на одном и том же месте, в порядке возрастания,
через пробел.
Примеры
Входные
данные
Выходные
данные
Комментарий
4
1 6 11 16
В таблицах 4 x 4 на одних и тех же местах стоят четыре числа: 1, 6, 11, 16 (см.
рисунки).
1
1
В таблице из одной клетки записано единственное число 1, оно и является
ответом на вопрос задачи.
Ограничения
Размер таблицы - натуральное число, не превосходящее 100.
Задача Числа 3А+5В
Многие натуральные числа можно представить в виде N = 3A + 5B, где A и B - целые неотрицательные числа. Например,
11=3x2+5x1, 20=3x0+5x4.
Вам требуется по заданному числу определить, можно ли его представить в таком виде, и если это возможно, найти
подходящие A и B.
Входные данные
Вводится одно число.
Выходные данные
Программа должна вывести два целых неотрицательных числа A и B, разделенных пробелом, если такие числа
существуют. В противном случае выведите слово IMPOSSIBLE. Если решений несколько, выведите любое из них.
Примеры
Входные
данные
Выходные
данные
Комментарий
23
14
23 = 3x1 + 5x4. Но есть и другое решение: 23 = 3x6 + 5x1, таким образом,
возможен и другой ответ: "6 1".
4
IMPOSSIBLE
Число 4 невозможно представить в виде 3A+5B с неотрицательными целыми A и
B.
10
02
10 = 3x0 + 5x2 - это единственное решение.
Ограничения
Программа должна верно работать для натуральных чисел, не превосходящих 10 000.
Задача Треугольники
Дан набор из N отрезков различной длины. Сколькими способами можно выбрать из этих отрезков три, из которых
можно составить (невырожденный) треугольник?
Входные данные
Сначала вводится количество отрезков, затем длины этих отрезков (еще N чисел).
Выходные данные
Программа должна вывести одно число - искомое количество способов.
Примеры
Выходные
данные
Входные данные
Комментарий
4
1324
1
Дано 4 отрезка с длинами 1, 2, 3 и 4. Из них можно составить единственный
треугольник со сторонами 2, 3, 4. Другие тройки не удовлетворяют
неравенству треугольника: 1+2=3, 1+3=4, 1+2<4.
3
10 100 1000
0
Из данных трех отрезков составить треугольник нельзя.
Ограничения
Количество отрезков - не менее 3 и не более 20. Длина каждого отрезка - натуральное число, не превосходящее 1000. Все
отрезки имеют разную длину.
Задача Слоники
Расставьте на шахматной доске размером N x N минимальное количество шахматных слонов так, чтобы они били все
поле (любая клетка должна находиться на одной диагонали хотя бы с одним слоном; считается, что слон бьет и ту
клетку, на которой стоит).
Входные данные
Вводится одно число - размер поля.
Выходные данные
Программа должна вывести одно число - минимальное количество слонов, которые можно расставить на данной доске
так, чтобы они били все поле.
۩
۩
۩
Пример
Входные
данные
3
Выходные
данные
Комментарий
Один из возможных вариантов расстановки трех слонов приведен на рисунке. Двух
слонов недостаточно, поскольку необходим слон, который будет бить черные поля, и
хотя бы два слона, которые будут бить белые поля.
3
Ограничения
Программа должна верно работать для досок, размер которых не превосходит 10 000.
Задача Шашки
На доске стоит белая шашка. Требуется определить, может ли она попасть в заданную клетку, делая ходы по правилам
(не превращаясь в дамку).
Входные данные
Вводится клетка, где стоит шашка, в шахматной нотации, а затем, через пробел, клетка, куда шашка должна попасть.
Выходные данные
Выведите слово YES (заглавными буквами), если шашка может попасть из начальной клетки в указанную, и NO в
противном случае.
Примеры
Входные
данные
Выходные
данные
Комментарий
a1 b2
YES
Для выполнения указанного перемещения шашка должна сделать один ход
вперед и вправо.
b2 a1
NO
Назад шашка ходить не может,
a1 h7
NO
a1 и h7 - клетки разного цвета.
a1 h8
YES
7 ходов вправо вверх.
Ограничения
Доска имеет размер 8x8, вертикали нумеруются маленькими латинскими буквами от a до h, горизонтали - числами от 1
до 8. Исходная и конечная клетки не совпадают.
Задача Регистрация на web-сайте
При регистрации на некотором сайте, пользователя просят ввести фамилию, дату рождения и номер банковской
карточки. Системный администратор заметил, что очень часто пользователи путают поля, и вводят, скажем, фамилию в
поле для даты рождения, а дату рождения в поле фамилии и т.д. Чтобы не заставлять пользователей вводить данные
заново, администратор сайта решил написать скрипт, который будет сам переставлять введенные данные в нужном
порядке. Помогите ему в этом нелегком деле.
Входные данные
Вводятся три строки. В одной из строк вводится фамилия, состоящая только из латинских букв (строчных или
заглавных). В другой строке вводится дата рождения. В оставшейся строке вводится номер банковской карточки.
Выходные данные
Программа должна вывести также три строки. В первой строке - фамилию, во второй - дату рождения, в третьей - номер
банковской карточки.
Примеры
Входные
данные
Выходные
данные
Комментарий
Smith
112324332
12.10.1964
Smith
12.10.1964
112324332
В первой строке выводится фамилия, во второй - дата рождения, в третьей - номер
банковской карточки.
Ivanov
01.01.2000
11111
Ivanov
01.01.2000
11111
Данные введены в правильном порядке, поэтому выводим их без изменений
Ограничения
Тестовые примеры, на которых проверяется решение, удовлетворяют следующим ограничениям.
Фамилия записывается латинскими строчными и заглавными буквами, длина фамилии не меньше трех символов и не
больше 50.
Номер банковской карточки натуральное число, состоящее не менее, чем из 5, и не более, чем из 15 цифр.
Дата рождения записывается в формате ДД.ММ.ГГГГ (день и месяц вводятся ровно двумя цифрами каждый, год ровно четырьмя)
Download