XIII Республиканская олимпиада имени А.М. Красникова 30 марта 2013 года ИНФОРМАТИКА

advertisement
XIII Республиканская олимпиада
имени А.М. Красникова
30 марта 2013 года
ИНФОРМАТИКА
8-9 класс
Задача1
Счастливые билеты
С клавиатуры вводится два шестизначных числа N и K (1<N<=K<=1000000000). Требуется
написать программу, которая подсчитывает количество чисел фибоначчи между N и K
(включительно) и выводит результат на экран.
Пример входных данных: 2 144
Пример выходных данных: 10
Чи́сла Фибона́ччи — элементы числовой последовательности
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, …
в которой каждое последующее число равно сумме двух предыдущих чисел
Задача 2
Игра 15
Имя входного файла:
I_15.in
Имя выходного файла:
I_15.out
Максимальное время работы на одном тесте:
1 секунда
Максимальный объем используемой памяти:
64 мегабайта
Максимальная оценка:
100 баллов
Игра 15 представляет собой квадратное поле 4х4, на котором расположены 15 квадратных
«камней», пронумерованных от 1 до 15. Одна клетка на игровом поле всегда пуста и на нее может
быть перемещен любой соседний «камень» (справа, слева, сверху, снизу).
Вася играет в игру 15, а Петя наблюдает за ним. Он запомнил все перемещения «пустой»
клетки, но не запомнил начальное расположение «камней».
Требуется написать программу, которая по конечному расположению «камней» на поле и
по последовательности перемещения «пустой» клетки выдавала бы начальное расположение
«камней» на поле.
Для упрощения реализации «камни» нумеруются цифрами 16-ричной системы счисления.
Пустая клетка обозначается цифрой 0, остальные от 1 до F. Поэтому любое расположение
«камней» на поле задается 16-ти разрядным 16-ричным числом (слева-направо, сверху-вниз),
например, нижеприведенное игровое поле будет задано следующей строкой: 1C7A694FD2B805E3
1
6
13
0
12
9
2
5
7
4
11
14
10
15
8
3
Формат входных данных
Первая строка входного файла содержит строку из 16 символов (от 0 до F)
Вторая строка файла содержит список перемещений «пустой» клетки. Перемещения обозначаются
буквами латинского алфавита U,D,L,R (вверх, вниз, налево, направо). Длина строки не более 255
символов.
Формат выходных данных
В выходной файл помещается строка из 16 символов, обозначающая начальное
расположение «камней» на поле.
Пример входных и выходных данных
I_15.in
E18526349A07DFCB
LU
930F1C456A872BED
URRRL
E2DF3971A805BC64
RRLLRDLUDURDULDRLUDURLDUDURRRLDDRLU
LURLLDURRLLRDDR
I_15.out
E18526349AC7DFB0
193F0C456A872BED
032F7ED1A985BC64
Задача 3
Дроби
Имя входного файла:
drobi.in
Имя выходного файла:
drobi.out
Максимальное время работы на одном тесте:
1 секунда
Максимальный объем используемой памяти:
64 мегабайта
Максимальная оценка:
100 баллов
Задано натуральное число N (1<N<=50)
Требуется написать программу, которая выдает в порядке возрастания все несократимые
правильные дроби, числитель и знаменатель которых не превосходит N.
Правильной называется дробь, у которой модуль числителя меньше модуля знаменателя.
Формат входных данных
Входной файл содержит число N.
Формат выходных данных
В выходной файл необходимо вывести разделенные пробелами дроби в виде Ч/З, где
Ч –числитель дроби
З -знаменатель дроби
Дроби выводятся в порядке возрастания их значений.
Пример входных и выходных данных
drobi.in
drobi.out
5
1/5 1/4 1/3 2/5 1/2 3/5 2/3 3/4 4/5
8
1/8 1/7 1/6 1/5 1/4 2/7 1/3 3/8 2/5 3/7 1/2
4/7 3/5 5/8 2/3 5/7 3/4 4/5 5/6 6/7 7/8
Задача 4
Ведра
Имя входного файла:
vedro.in
Имя выходного файла:
vedro.out
Максимальное время работы на одном тесте:
1 секунда
Максимальный объем используемой памяти:
64 мегабайта
Максимальная оценка:
100 баллов
Имеется водоем и два ведра емкостью N и M литров. Требуется за минимальное количество
операций переливания (из водоема в ведро, из ведра в водоем или из ведра в ведро) отмерить
ровно K литров воды. Задача считается выполненной, если в одном из ведер осталось ровно K
литров воды, а второе ведро пусто. Написать программу, которая выдает количество операций с
ведрами. Если отмерить K литров воды невозможно, то вывести ноль.
Например, пусть имеется ведра емкостью 5 и 7 литров, требуется отмерить 6 литров:
Номер операции
название операции
1
забираем из водоема воду в 7 литровое ведро
2
переливаем из 7л в 5л ведро 5 литров
3
сливаем 5литровое ведро в водоем
4
переливаем из 7л в 5л ведро оставшиеся 2 литра
5
забираем из водоема воду в 7 литровое ведро
6
доливаем из 7л в 5л ведро 3литра (до заполнения 5л)
7
сливаем 5литровое ведро в водоем
8
переливаем из 7л в 5л ведро оставшиеся 4 литра
9
забираем из водоема воду в 7 литровое ведро
10
11
доливаем из 7л в 5л ведро 1литр (до заполнения 5л)
сливаем 5литровое ведро в водоем
В результате этих операций в 7л. ведре будет находиться 6 литров воды, 5л. ведро будет
пустым, а ответ будет 11 операций.
Формат входных данных
Входной файл содержит разделенные пробелами числа N, M,K (1=<N,M<=100,
K<=max(N,M))
Формат выходных данных
В выходной файл необходимо вывести количество переливаний
Пример входных и выходных данных
vedro.in
vedro.out
756
11
964
0
371
5
11 13 1
21
37 19 28
55
XIII Республиканская олимпиада
имени А.М. Красникова
31 марта 2013 года
Информатика
8-11 класс
День 2
Задача 1
Мафиозная деревня
В сицилийской деревне живут мафиози из двух кланов: Rossi и Bazini. Деревня состоит из
одной улицы, идущей с запада на восток. В каждом доме живут либо только Rossi, либо только
Bazini. Решено жильцам поменяться домами так, чтобы все Rossi жили западнее, чем Bazini. Какое
минимальное количество обменов потребуется?
Ввод. В первой строке файла INPUT.TXT содержится количество домов N. В каждой из
следующих N строк – одна из фамилий: Rossi или Bazini в порядке перечисления с запада на
восток. N <=1000.
Вывод. В единственной строке файла OUTPUT.TXT вывести одно число - наименьшее
возможное количество обменов.
Пример
Ввод
4
Rossi
Bazini
Bazini
Rossi
Вывод
1
Задача 2
Усилители
Для питания машины времени Шурику необходимо получить напряжение N вольт. Для этой
цели используются усилители напряжения. В продаже имеются два типа усилителей. У первого из
них при входном напряжении K вольт на выходе получается 2K – 1 вольт, а у второго 2K + 1
вольт. Усилителей в магазине неограниченное количество. У Шурика в распоряжении батарейка с
напряжением 1 вольт. Шурик может последовательно соединять усилители. Иными словами,
входом первого усилителя служит батарейка, а входом каждого последующего усилителя является
выход предыдущего. Необходимо обойтись минимальным числом усилителей. Помогите Шурику.
Ввод. В единственной строке входного файла INPUT.TXT содержится целое число N (2 ≤ N ≤
109).
Вывод. Если можно собрать схему, описанную в условии, выведите в первой строке выходного
файла OUTPUT.TXT минимальное количество усилителей в схеме, а во второй строке
последовательность типов усилителей через пробел, начиная от батарейки. Выводите 1, если
используется усилитель первого типа, и 2, если второй. Если решения нет, выведите No.
Пример
Ввод
5
Вывод
2
2 1
Задача 3
Колорадский жук
Прямоугольный садовый участок длиной M и шириной N (1≤ M, N ≤5) разбит на квадраты со
стороной 1 метр. На этом участке вскопана грядка картошки. Грядкой является связанное
множество квадратов. Иными словами, из любого квадрата этой грядки можно попасть в любой
другой квадрат этой же грядки, последовательно переходя по грядке из квадрата в квадрат через
их общую сторону.
В некоторых квадратах грядки растут кусты картошки. Колорадский жук прилетел на один из
кустов. Съев все листья, он переходит через общую сторону к какому-либо соседнему свежему
кусту той же грядки. Жук не возвращается к тому кусту, на котором он уже был, и не приходит в
те квадраты, где картошка не посажена. Определить наибольшее количество кустов картошки,
которые сможет съесть колорадский жук.
Ввод. В первой строке файла INPUT.TXT находятся числа M и N через пробел. Во второй
строке двумя числами X и Y заданы координаты начального куста (1≤ X ≤ M, 1≤ X ≤ N). Далее идут
M строк по N символов. Квадраты грядки обозначаются символами '#', свободные квадраты –
символами '.'.
Вывод. В единственной строке файла OUTPUT.TXT вывести одно число - наибольшее
возможное количество съеденных кустов картошки.
Пример
Ввод
5 4
1 4
####
.#..
.###
..##
Вывод
9
Задача 4
Эксперимент
Результат эксперимента представляет собой матрицу из N строк и M столбцов (1 ≤ N, M ≤
2000), заполненную целыми числами, по модулю не превосходящими 500. Отвечающим условиям
эксперимента считаются такие подматрицы размера K строк и L столбцов (0 < K < N, 0 < L < M),
что сумма элементов в каждой из них в точности равна заданному числу S.
Определить, сколько подматриц в исходной матрице отвечают условиям эксперимента.
Ввод. В первой строке файла INPUT.TXT находятся 5 чисел N, M, K, L и S, разделенных
пробелами. В каждой из следующих N строк находятся через пробел по M чисел, являющихся
элементами матрицы.
Вывод. В первой строке файла OUTPUT.TXT вывести единственное число – количество
подматриц размера K×L, сумма элементов в которых равна S.
Пример
Ввод
3 3 2 2 4
1 1 1
1 1 1
1 1 1
Вывод
4
Задача 5
Игра в умножение
Двое играют в умножение: умножают целое число P на одно из чисел от 2 до 5. Первый игрок
всегда начинает с P=1, делает умножение, затем число умножает второй игрок, снова первый и т.
д. Перед началом игры им задают число N, и победителем считается тот, кто первым получит P ≥
N ( 2  N 10000). Определить, кто выиграет при заданном N, если оба играют наилучшим
образом.
Ввод из файла INPUT.TXT. В первой строке находится количество партий M. В следующих M
строках задаются значения N для каждой партии.
Вывод в файл OUTPUT.TXT. Выводится М строк с числами 1 – если победит первый игрок,
или 2 - если победит второй.
Пример
Ввод
1
17
Вывод
1
Download