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