Школьная олимпиада по информатике
2012-2013 учебный год
10 – 11 класс
ЗАДАЧА 1. Делимость на 7 (15 баллов)
Требуется определить делимость на 7 целых чисел, записанных в двоичной системе счисления.
Входные данные
В строке входного файла INPUT.TXT содержится двоичное число, которое состоит не более чем из 1000 цифр.
Выходные данные
Выходной файл OUTPUT.TXT должен содержать сообщение “Yes”, если соответствующее число кратно 7 или “No” в противном случае.
Примеры
№
|
INPUT.TXT
|
OUTPUT.TXT
|
1
|
1110
|
Yes
|
2
|
11110001001000000
|
No
|
Задача 2. Шифровка (25 баллов)
Для кодирования сообщения используют следующие действия: сообщение записывают, опуская пробелы, в прямоугольник заданной высоты по столбцам, а затем прочитывают строки в заданном порядке.
1 П Р И А
2 Р А Р Н
3 О М О И
4 Г М В Е
а затем, если выбрать порядок строк 3, 1, 2, 4, получают закодированное сообщение ОМОИПРИАРАРНГМВЕ.
Требуется написать программу, которая по заданным высоте прямоугольника и порядке прочтения строк при кодировке декодирует заданное сообщение.
Входные данные
Входной файл INPUT.TXT содержит: в первой строке высоту прямоугольника (не больше 10), во второй – порядок прочтения строк (числа записаны через пробел), в третьей – закодированное сообщение, длина которого не превышает 200.
Выходные данные
В выходной файл OUTPUT.TXT записывается декодированное сообщение.
Примеры
№
|
INPUT.TXT
|
OUTPUT.TXT
|
1
|
4
3 1 2 4
ОМОИПРИАРАРНГМВЕ
|
ПРОГРАММИРОВАНИЕ
|
2
|
2
2 1
ииафзк
|
физика
|
ЗАДАЧА 3. Напёрстки (10 баллов)
Шулер показывает следующий трюк. Он имеет три одинаковых наперстка. Под первый (левый) он кладет маленький шарик. Затем он очень быстро выполняет ряд перемещений наперстков, каждое из которых – это одно из трех перемещений - A, B, C:
-
A - обменять местами левый и центральный наперстки,
-
B - обменять местами правый и центральный наперстки,
-
C - обменять местами левый и правый наперстки.
Необходимо определить, под каким из наперстков окажется шарик после всех перемещений.
Входные данные
В единственной строке входного файла INPUT.TXT записана строка длиной не более 50 символов из множества {A, B, C} – последовательность перемещений.
Выходные данные
В единственную строку выходного файла OUTPUT.TXT нужно вывести номер наперстка, под которым окажется шарик после перемещений.
Пример
№
|
INPUT.TXT
|
OUTPUT.TXT
|
1
|
CBABCACCC
|
1
|
ЗАДАЧА 4. Боулинг (20 баллов)
Цель при игре в боулинг – сбить шаром максимальное количество кеглей. Партия в этой игре состоит из 10 туров. Задача игрока – сбить все 10 кеглей в каждом туре. Для этого игрок может совершить 2 броска шара, за исключением:
-
если 10 кеглей сбиты первым броском, то второй бросок не совершается;
-
если 10 кеглей сбиты первым броском в десятом туре, то игроку предоставляются два призовых броска, а если двумя бросками – один.
Количество очков в каждом туре равно количеству сбитых кеглей, кроме двух бросков, называемых «Strike» и «Spire».
Strike: игрок сбивает 10 кеглей первым броском, очки в этом туре начисляются из расчета – 10 + сумма очков за два последующих броска.
Spire: игрок сбивает 10 кеглей двумя бросками, очки в этом туре начисляются из расчета – 10 + сумма очков за один последующий бросок.
Результат партии складывается из результатов всех 10 туров.
Требуется написать программу, которая определит количество набранных игроком очков.
Входные данные
Входной файл INPUT.TXT содержит в первой строке одно натуральное число, определяющее количество совершенных бросков. Вторая строка содержит натуральные числа (разделенные пробелом), обозначающие количество сбитых кеглей за каждый совершенный бросок.
Выходные данные
Выходной файл OUTPUT.TXT должен содержать одно целое число – количество набранных игроком очков.
Примеры
№
|
INPUT.TXT
|
OUTPUT.TXT
|
1
|
12
10 10 10 10 10 10 10 10 10 10 10 10
|
300
|
2
|
20
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
0
|
3
|
15
10 10 10 8 2 10 3 4 8 2 4 5 10 4 5
|
173
|