Текст районной/городской олимпиады по информатике

2013–2014 учебного года

 

1.      «Многотомник » – 100 баллов

Многотомное собрание сочинений (не более 32 томов) стоит в произвольном порядке на полке. Разрешается брать любой том, и ставить его последним. Составить программу, которая определяет наименьшее число перестановок необходимое для того, чтобы упорядочить слева направо собрание сочинений, состоящее из n томов.

Ваша программа должна

·   запросить  или прочитать из файла order.in число томов;

·   запросить или прочитать из того же файла начальный порядок томов;

·   найти и вывести на экран или в файл order.out  наименьшее число перестановок, которое необходимо для упорядочения собрания сочинений.

Пример:      

         Число томов              5                      Начальный порядок томов   3 2 4 1 5

         Минимальное число перестановок              4.

 

Примечание. Исходный текстовый файл order.in содержит в первой строке одно число n – количество томов в собрании. В второй строке n чисел. Соседние числа разделены ровно одним пробелом. Выходной текстовый файл order.out должен в первой строке содержать единственное число – ответ.

 

 

2. «Неравенства» – 100 баллов

Про числа a, b  и c известно, что среди них нет равных, а также результаты их попарного сравнения в виде трех непротиворечивых неравенств вида x<y или x>y в произвольном порядке. Необходимо записать соотношение между этими величинами в виде правильного двойного неравенства вида x<y<z.

Ваша программа должна

·   принять с клавиатуры или прочитать из файла ineg.in три результата попарного сравнения;

·   найти и вывести на экран или в файл ineg.out правильное двойное неравенство для величин a, b и c.

Пример:      

            Первое неравенство              b<c

            Второе неравенство              a<c

            Третье неравенство               a>b

                                    Ответ                                      b<a<c 

 

Примечание. Исходный текстовый файл ineg.in содержит в каждой из первых трех строк один из результатов сравнения. Выходной текстовый файл ineg.out должен содержать двойное неравенство – ответ.

 

 

3.      «К единице-2 – 100 баллов».

 

За один ход с числом делается такая операция: если число не делится на 3, то вычитаем 1, а если делится, то делим на 3. Так из числа 39 единица получается за 5 таких ходов (имеется в виду цепочка 39 – 13 – 12 – 4 – 3 – 1).

Сколько существует натуральных чисел, каждое из которых превращается в единицу ровно за k (0 ≤ k ≤ 35) таких ходов?

 Программа должна

·         Запросить  число ходов k (натуральное число, 0 ≤ k ≤ 35);

·         Найти и вывести на экран количество натуральных чисел, которые превращаются в единицу за k таких ходов.

Пример:

        Число ходов              3                      Всего натуральных чисел                6

 

Примечание. Для ввода и вывода информации можно использовать текстовые файлы number.in и number.out соответственно.


4. «Отрезки» – 100 баллов

На числовой оси заданы n (n<100) точек в порядке возрастания их координат (натуральные числа не превосходящие 1000). Соседние точки соединяются отрезками, но так, чтобы ни одна из точек не оказалась принадлежащей сразу двум отрезкам. При этом сумма длин проведенных отрезков должна быть максимальной.

Пример:

         Число точек:              6                      Координаты точек:               1 3 5 12 15 16

         Максимальная длина отрезков   10

         Всего отрезков          3

Выбранные отрезки:

         1-2

         3-4

         5-6

 

Исходные данные должны вводиться с клавиатуры или читаться из текстового файла section.in, а найденные результаты выводиться на экран или в текстовый файл section.out. Исходный файл section.in содержит в первой строке одно число n – количество точек. Во второй строке n чисел – координаты точек. Соседние числа разделены ровно одним пробелом.  Выходной текстовый файл section.out должен в первой строке содержать единственное число – максимальную длину отрезков, во второй строке – число выбранных отрезков, а в последующих – по два числа, задающих номера точек-концов очередного выбранного отрезка, разделенных тире (без пробелов).

 

 

Примечание. Для всех программ ограничение по времени прохождения одного теста — 1 секунда.