SlideShare a Scribd company logo
1 of 10
Download to read offline
Задания отборочного этапа олимпиады 2014-15 года для 11 класса
Отборочный этап 11 класса. 1 тур (приведен один из вариантов заданий)
1. Кодирование информации. Системы счисления (3 балла)
[Периодическая дробь]
Дано число A, запись которого в восьмеричной системе счисления является бесконечной периодической дробью:
0,(14)8. На какое минимальное целое положительное число B нужно умножить число A, чтобы в результате получилось
целое положительное число. В ответе запишите число B в десятичной системе счисления.
Ответ: 21
2. Кодирование информации. Системы счисления (3 балла)
[Палиндромы]
Снусмумрику очень нравятся красивые числа. Больше всего его привлекают числа-палиндромы, то есть такие числа,
которые читаются одинаково слева направо и справа налево. Например, число 122110 и число C4C16 будут палиндромами.
Недавно Снусмумрик обнаружил, что существуют числа, запись которых сразу в нескольких позиционных системах
счисления будет палиндромом. Пока он нашел один такой пример: шестнадцатеричное число F6F16 в восьмеричной системе
будет записываться как 75578, то есть запись этого числа является палиндромом и в шестнадцатеричной, и в восьмеричной
системе счисления. Снусмумрик решил поэкспериментировать и с другими позиционными системами счисления. Помогите
ему в этом и определите, сколько существует целых положительных чисел, таких, что их запись будет палиндромом и в
четверичной, и в шестнадцатеричной системе счисления, причем в шестнадцатеричной системе счисления будет
содержать ровно 3 значащих разряда. В ответе укажите целое число.
Ответ: 24
3. Кодирование информации. Количество информации. Вероятностный подход (2 балла)
[Случайные последовательности]
Генератор случайных чисел создал последовательность из N чисел, каждое из которых с равной вероятностью является
одним из натуральных чисел из диапазона от 0 до 7 включительно. Чему равна длина последовательности N, если известно,
что сообщение «вся последовательность состоит из одинаковых чисел» несет в себе ровно 21 бит информации? В ответе
запишите целое число.
Ответ: 8
4. Кодирование информации. Количество информации. Алфавитный подход (2 балла)
[Программа для робота]
Хемуль программирует робота, который может передвигаться по квадратному полю. Поле разбито на равные
квадратные клетки так, что длина каждой стороны поля – ровно M клеток. Со свойственной ему педантичностью, Хемуль
пронумеровал все клетки поля, присвоив каждой клетке уникальный номер. Поскольку робот Хемуля может передвигаться
только в пределах поля, Хемуль решил записывать программу для управления роботом как набор номеров клеток в порядке,
в котором робот должен их посетить, используя для записи каждого номера одинаковое минимально возможное количество
бит. Никакой дополнительной информации кроме этой последовательности номеров программа Хемуля не содержит.
Снорк обратил внимание, что робот Хемуля за один ход может переместиться только в одну из восьми клеток,
окружающих клетку, в которой он находился перед началом хода, и предложил записывать программу другим способом –
как последовательность команд роботу на единичное перемещение в одном из восьми направлений. Для записи каждой
команды на единичное перемещение Снорк решил использовать одинаковое минимально возможное количество бит. Перед
первой командой на единичное перемещение Снорк решил записывать номер клетки, из которой робот начинает движение,
также как и Хемуль, используя для записи этого номера минимально возможное количество бит. Никакой дополнительной
информации кроме последовательности команд и номера первой клетки программа Снорка не содержит.
Снорк выбрал маршрут, в котором робот последовательно посещает 16 клеток, включая начальную и конечную клетку
маршрута, и сравнил записи своей программы и программы Хемуля, описывающих этот маршрут. В результате сравнения
Снорк обнаружил, что для хранения его программы требуется на 135 бит меньше, чем для хранения программы Хемуля.
Определите, при каком максимальном размере поля это возможно. В ответе укажите одно целое число M – количество
клеток по одной из сторон поля.
Ответ: 64
5. Основы логики. Анализ логических схем. (2 балла).
[Логический конструктор]
Снифф нашел конструктор, состоящий из логических элементов и инструкцию по сборке. В инструкции была
приведена схема, и было описано, какой логический элемент реализует какую логическую операцию, преобразуя значения,
подаваемые слева элемента на вход в значение, получаемое справа элемента на выходе.
Название логической операции Конъюнкция (AND) Дизъюнкция (OR) Исключающее ИЛИ (XOR)
Обозначение на схеме
Снифф собрал в соответствии с инструкцией следующую схему и стал экспериментировать, подавая различные
значения Ai и Bi на вход и наблюдая значения Si и P3 на выходе схемы:
&0
0
0
>=10
0
0
=10
0
0
2
Определите значения, которые Снифф подал на входы Bi, если известно, что на входы Ai он подал значения A0=0, A1=1,
A2=1, A3=0, а на выходе получил значения S0=1, S1=0, S2=0, S3=0, P3=1.
В ответе укажите подряд без пробелов четыре значения в следующем порядке: значение, поданное на вход B0,
значение, поданное на вход B1, значение, поданное на вход B2, значение, поданное на вход B3.
Ответ: 1101
6. Основы логики. Упрощение логического выражения (2 балла)
[Странная симметрия]
Упростите логическое выражение или укажите его результат (при его однозначности). Результат упрощения может
содержать только операции инверсии, конъюнкции и дизъюнкции.
(A and B and not C → A) ↔ (A → not C and B and A)
Комментарий по вводу ответа: операнды вводятся большими латинскими буквами; логические операции обозначаются,
соответственно как not, and и or.
Скобки используются только для изменения порядка выполнения операций. Если порядок выполнения операций очевиден из
их приоритетов – дополнительное использование скобок считается ошибкой.
При однозначном ответе – истинный ответ обозначается как 1, а ложный как 0.
Пример записи ответа: (A or not B) and C
Ответ: not A or B and not C || not A or not C and B || B and not C or not A || not C and B or not A
7. Основы логики. Синтез выражения по таблице истинности или логической схеме (1 балл)
[Циклический сдвиг]
Тофсла построил таблицу истинности логической функции от трех аргументов F(A,B,C) и обнаружил, что функция
принимает истинное значение только для двух наборов значений аргументов, причем эти два набора расположены в таблице
истинности подряд друг за другом. Комбинации значений аргументов в таблице истинности Тофслы выстроены сверху вниз
в лексикографическом порядке. Порядок следования столбцов: первый столбец – A, второй – B, третий – C.
3
Вифсла сдвинул столбец значений логической функции Тофслы циклически вверх на шесть позиций и обнаружил, что
логическая функция G(A,B,C), задаваемая получившимися после сдвига значениями, принимает истинное значение для
комбинаций аргументов, каждая из которых является противоположной одной из комбинаций, для которых была истина
функция Тофслы. Противоположной комбинацией значений аргументов будем считать комбинацию, в которой значение
каждого аргумента является инверсией значения соответствующего аргумента в исходной комбинации.
Найдите функцию F(A,B,C), которую построил Тофсла и приведите в ответе логическое выражение, описывающее эту
функцию в наиболее упрощенном виде. Логическое выражение может содержать логические переменные A, B и C и
логические операции отрицания, конъюнкции или дизъюнкции, обозначаемые как not, and и or соответственно, и не должно
содержать скобок. Если таких функций несколько – приведите одну любую из них.
Ответ: A and B || B and A || not A and B || B and not A
8. Алгоритмизация и программирование. Формальный исполнитель (4 балла)
[Рекурсивная заливка]
Дано растровое изображение, исходно содержащее точки двух цветов – белого (фон) и черного (фигура). На
изображении введена система координат с центром в верхнем левом углу и направлением осей как показано на рисунке:
Муми-папа решил использовать метод, позволяющий закрасить все точки внутри фигуры зеленым цветом. Метод
представляет собой рекурсивный вызов процедуры «Залить», которой при каждом вызове передаются два параметра.
Первый параметр – координата X и второй параметр – координата Y некоторой точки.
В процедуре «Залить» реализован следующий алгоритм:
1. Проверить цвет в точке с координатами X, Y, переданными при вызове процедуры в качестве первого и второго
параметров, соответственно.
Если точка с этими координатами – белого цвета, то выполнить следующие действия:
a. Окрасить точку с координатами X, Y зеленым цветом.
b. Вызвать процедуру «Залить», передав ей значения параметров: первый параметр равен X+1, второй
параметр равен Y.
c. Вызвать процедуру «Залить», передав ей значения параметров: первый параметр равен X-1, второй
параметр равен Y.
d. Вызвать процедуру «Залить», передав ей значения параметров: первый параметр равен X, второй параметр
равен Y+1.
e. Вызвать процедуру «Залить», передав ей значения параметров: первый параметр равен X, второй параметр
равен Y-1.
Если точка с этими координатами не белого цвета, то завершить работу процедуры.
Муми-папа вызвал процедуру со значениями параметров X=4 и Y=4 и стал наблюдать за закрашиванием фигуры.
Первой закрасилась точка с координатами X=4 и Y=4, затем точка с координатами X=5 и Y=4, затем X=6 и Y=4 и т.д. В
результате все точки внутри фигуры оказались окрашены в зеленый цвет. Определите координаты точки, которая была
последней окрашена в зеленый цвет. В ответе укажите через запятую два целых числа – сначала координату X, а затем
координату Y.
Ответ: 6,2
9. Алгоритмизация и программирование. Планирование (4 балла)
[Настройка телескопа]
Хемуль построил телескоп для наблюдения за кометой. Поскольку это очень сложный прибор, его требуется настроить.
Настройка телескопа заключается в последовательном выполнении шести операций строго в указанном порядке: O1, O2, O3,
O4, O5, O6. В Муми-доле живут четыре мастера, каждый из которых умеет осуществлять некоторые из этих операций. Ниже
приведена таблица, указывающая, какие операции может осуществлять какой мастер:
Мастер Операции, которые он умеет выполнять
Мастер1 O1, O5, O6
Мастер2 O2, O3, O5
Мастер3 O1, O2, O4
Мастер4 O3, O4, O6
Жилища мастеров расположены на некотором расстоянии друг от друга. Время, которое необходимо Хемулю, чтобы
перенести телескоп от жилища одного мастера до жилища другого мастера, приведено в таблице:
Мастер1 Мастер2 Мастер3 Мастер4
Мастер1 ----------- 1 час 2 часа 3 часа
4
Мастер2 1 час ----------- 3 часа 2 часа
Мастер3 2 часа 3 часа ----------- 1 час
Мастер4 3 часа 2 часа 1 час -----------
Хемуль очень педантичен, поэтому он начинает свой путь с посещения одного из мастеров, которые могут выполнить
операцию O1, затем переносит телескоп к мастеру, который может выполнить операцию O2 и т.д., всегда используя прямую
дорогу между соответствующими мастерами и затрачивая на нее время, указанное в таблице.
Каждый мастер затрачивает на каждую операцию одинаковое количество времени – 1 час. Мастер начинает работать
тот час же, как только Хемуль приходит в его жилище. Хемуль покидает жилище мастера и отправляется к следующему тот
час же, как только мастер заканчивает операцию. Если мастер может выполнить две идущие подряд операции – Хемуль
может остаться в его жилище и дать ему возможность выполнить обе операции.
Найдите для Хемуля оптимальную последовательность посещения мастеров, чтобы он затратил минимальное время на
полную настройку телескопа. Посчитайте для этой последовательности (она может быть не единственна) время в часах от
момента, когда Хемуль пришел в жилище мастера, который может выполнить операцию O1 до окончания одним из мастеров
выполнения операции O6. В ответе укажите целое число.
Ответ: 10
10. Алгоритмизация и программирование. Блок-схема, обратная задача (1 балл)
[Кручу-верчу]
Дана блок-схема алгоритма. Перед началом его выполнения целочисленный одномерный массив A из 10 элементов был
равен (0, 1, 2, 3, 4, 5, 6, 7, 8, 9). После завершения выполнения алгоритма массив A оказался равен (2, 3, 1, 4, 7, 5, 8, 9, 0, 6).
Определите, какие значения были у элементов целочисленного одномерного массива mas перед началом выполнения
алгоритма, если известно, что каждый его элемент может принимать только значения в диапазоне от 1 до 4. Нумерация
элементов массивов начинается с 1. В ответе укажите через запятую 4 числа – элементы массива mas в порядке их
следования в массиве.
Ответ: 2, 1, 3, 2
5
Отборочный этап 11 класса. 2 тур (приведен один из вариантов заданий)
1. Электронные таблицы. Адресация ячеек и вычисления (2 балла)
[Остатки]
Дан фрагмент электронной таблицы в режиме отображения формул:
Ячейку C1 скопировали в ячейки D1 и E1. Ячейку A3 скопировали в ячейки A4 и A5. Ячейку B2 скопировали во все
ячейки диапазона B2:E5. Определите, какие два двузначных натуральных числа записали в ячейки B1 и A2, если в
результате вычисления формул получились значения в ячейках: B5=5, C5=3, D5=1, E5=18. В ответе запишите через пробел
два натуральных числа: сначала число, которое было записано в ячейку B1, а потом число, которое было записано в ячейку
A2.
Ответ: 13 15
2. Электронные таблицы. Графики и диаграммы (1 балл)
[Логичные столбики]
В ячейку E2 электронной таблицы поместили формулу:
=ЕСЛИ(ИЛИ(НЕ(И(#2=1;НЕ(#2=1)));И(НЕ(#2=1);#2=1));1;0),
где знаками # зашифрованы имена столбцов: A, B, C и D. Известно, что каждое из этих имен столбцов встречается в
формуле ровно один раз.
В каждую ячейку диапазона A2:D17 записали или 0 или 1 (в результате часть ячеек диапазона содержит число 0, а часть
– число 1), а ячейку E2 скопировали во все ячейки диапазона E3:E17. После этого выделили диапазон A2:E17 и построили
для выделенного диапазона нормированную гистограмму с накоплением. Результат приведен на рисунке:
Определите, какая формула была записана в ячейке E2. В ответе укажите подряд без пробелов четыре буквы: названия
столбцов в порядке их упоминания в формуле. Например, если построенная гистограмма свидетельствует о том, что в ячейке
E2 была записана формула «=ЕСЛИ(ИЛИ(НЕ(И(D2=1;НЕ(C2=1)));И(НЕ(B2=1);A2=1));1;0)», то в ответ следует записать
DCBA.
Ответ: BADC
3. Сортировка и фильтрация данных (2 балла)
[Перемешанная таблица]
Одним из принципов сортировки символьных последовательностей является сортировка в лексикографическом порядке
на основе сравнения кодов отдельных символов по определенной кодовой таблице. В кодовой таблице каждому символу
взаимно однозначно соответствует некоторое неотрицательное целое число – код этого символа. В этом случае мы говорим,
что последовательность символов α предшествует последовательности символов β, если первые k символов (k>=0) обеих
последовательностей совпадают, а k+1 символ последовательности α имеет код меньше, чем k+1 символ последовательности
β.
Арабские цифры тоже являются символами алфавита. В большинстве кодовых таблиц им сопоставляются идущие
подряд последовательности кодов, так, чтобы код большей цифры оказывался больше кода меньшей цифры. Например, в
таблице ASCII арабским цифрам соответствуют коды от 48 до 57, причем символу «0» соответствует код 48, символу «1» –
код 49 и так до символа «9» с кодом 57. Поэтому если мы отсортируем по описанному выше принципу последовательности
цифр одинаковой длины, то результат этой сортировки совпадет с сортировкой десятичных чисел, соответствующих этим
последовательностям.
Снусмумрик решил подшутить над Муми-троллем и поменял на его компьютере кодовую таблицу таким образом, что
арабские цифры по-прежнему занимают диапазон кодов от 48 до 57, но не расположены в порядке возрастания, а
перемешаны. В результате, когда Муми-тролль отсортировал по возрастанию набор из 16-ти четырехсимвольных цифровых
последовательностей, он получил такой результат:
6
3520
3526
3588
3584
3136
3134
3105
3103
2919
2917
2990
2997
2875
2879
2826
2821
Определите, какие коды имеют арабские цифры в кодовой таблице, измененной Снусмумриком. В ответе укажите через
пробел три числа: сначала код цифры 2, затем код цифры 7 и затем код цифры 9.
Ответ: 55 54 53
4. Мультимедиа технологии (3 балла)
[Кривые]
Одним из распространенных инструментов цветокоррекции является инструмент «Кривые» («Curves»). Инструмент
представляет собой график, показывающей соотношение входной и выходной яркости всего изображения или отдельного
цветового канала (например, в модели RGB – красного, зеленого или синего). По горизонтальной оси откладываются
значения яркости исходного изображения, а по вертикальной оси – нового изображения, получаемого в результате
цветокоррекции. Таким образом, в зависимости от формы кривой для всех точек с одинаковой яркостью по
соответствующему каналу устанавливаются новые значения яркости. Например, в соответствии с кривой, представленной
ниже, все точки, имевшие по красному каналу яркость 200, теперь будут иметь по этому каналу яркость 135 и т.д.
Муми-тролль подготовил 6 вариантов кривых, представленных в таблице, и обозначил каждую кривую буквой:
А Б В
7
Г Д Е
Муми-тролль решил проверить, как работают эти кривые. Он подготовил следующее исходное изображение:
Затем он опробовал на этом изображении три из подготовленных им кривых и получил следующие изображения:
Изображение 1 Изображение 2 Изображение 3
Известно, что в каждом случае к исходному изображению была применена только одна из подготовленных кривых.
Определите, какой из вариантов получен с помощью какой кривой. В ответе укажите подряд без пробелов
последовательность из трех букв: сначала букву, соответствующую кривой, с помощью которой получено изображение 1,
затем букву, соответствующую кривой, с помощью которой получено изображение 2, и затем букву, соответствующую
кривой, с помощью которой получено изображение 3.
Ответ: ВГА
5. Телекоммуникационные технологии (3 балла).
[Сниффер]
Большинство сетевых приложений построено по архитектуре клиент-сервер. Взаимодействие приложений через стек
протоколов TCPIP осуществляется с использованием многоуровневой адресации. Данные между компьютерами (хостами)
доставляет протокол IP. Каждое сообщение протокола IP (IP-пакет) в заголовке содержит IP-адрес отправителя и IP-адрес
получателя. По IP-адресу получателя определяется маршрут следования пакета и осуществляется его доставка. В IP-пакет
инкапсулировано или сообщение протокола TCP, или сообщение UDP. Протоколы TCP и UDP доставляют сообщения
конкретному приложению на хосте. В заголовках TCP и UDP содержатся особые адреса взаимодействующих приложений -
номера порта отправителя и порта получателя. Таким образом, сообщение сначала доставляется на хост по IP-адресу
получателя, а потом конкретному приложению по номеру порта получателя.
При взаимодействии клиента и сервера заранее известен номер порта программы-сервера. Это или стандартный для
определенного прикладного протокола номер порта, или любой порт, на использование которого настроена программа-
сервер. Например, для протокола HTTP (Web) стандартный порт сервера - 80 TCP, но Web-сервер может быть настроен на
любой порт, положим – 8081 TCP. В первом случае для подключения к серверу на Web-клиенте достаточно указать адрес
хоста, на котором работает программа-сервер, а номер порта получателя (по умолчанию 80 TCP) будет подставлен в
заголовок TCP автоматически. Во втором случае в адресной строке после адреса надо явно указывать номер порта через
двоеточие (например, 192.168.0.1:8081).
8
Программа-клиент занимает любой свободный порт больше 1024. На одном компьютере может быть запущено
несколько клиентов, которые займут разные порты, при этом эти клиенты могут работать как с разными серверами, так и с
одним и тем же сервером.
Для анализа трафика используются программы-снифферы. Они служат для перехвата всего трафика (входящего и
исходящего) на наблюдаемом сетевом интерфейсе (например, сетевой карте) и последующего его анализа. Программы-
снифферы имеют встроенный язык запросов для отбора части перехваченных сообщений по формальным признакам.
Студент Пётр изучает сетевые технологии. IP-адрес компьютера Петра 192.168.0.1. Пётр на своем компьютере запустил
FTP-сервер в пассивном режиме и Web-сервер на стандартных портах (21 TCP и 80 TCP соответственно), к которым
подключились другие студенты его группы. Пётр запустил на своем компьютере несколько Web-браузеров и FTP-клиентов и
установил соединение с несколькими внешними Web и FTP-серверами, работающими по стандартным портам TCP.
Кроме этого Пётр запустил на своем компьютере SSH-клиент и подключился к SSH-серверу, который настроен на
работу по порту 80 TCP.
Для анализа трафика Пётр использует программу-сниффер Wireshark.
Пётр осуществлял перехват трафика в течение 10 минут и решил провести анализ трафика. Для фильтрации трафика
Пётр решил использовать только следующие условия:
http - отбирает все сообщения, содержащие данные и (или) команды протокола HTTP
ftp - отбирает все сообщения, содержащие данные и (или) команды протокола FTP
ssh - отбирает все сообщения, содержащие данные и (или) команды протокола SSH
ip.addr - отбирает все сообщения, содержащие IP пакеты, отправленные с подходящего по условию адреса или на него
ip.src - (от англ. source - источник) отбирает все сообщения, содержащие IP пакеты, отправленные с подходящего по
условию адреса
ip.dst - (от англ. destination - адресат) отбирает все сообщения, содержащие IP пакеты, отправленные на подходящий по
условию адрес
tcp.port - отбирает все сообщения, содержащие TCP сегменты, отправленные с подходящего по условию порта TCP или
на него
tcp.srcport - отбирает все сообщения, содержащие TCP сегменты, отправленные с подходящего по условию порта TCP
tcp.dstport - отбирает все сообщения, содержащие TCP сегменты, отправленные на подходящий по условию порт TCP
Доступны логические операторы и операторы сравнения:
&& - И
|| - ИЛИ
== - равно
!= - НЕ равно
() - скобки для управления порядком вычисления условия
! – логическое НЕ (например выражение !http – отбирает все пакеты кроме содержащих данные и (или) команды
протокола HTTP)
> - больше
< - меньше
>= - больше или равно
<= - меньше или равно
Выберите все выражения-фильтры в программе Wireshark, которые позволят Петру отобрать среди всего
перехваченного трафика только сообщения Web-клиентов и FTP-клиентов (от них и к ним), запущенных на его компьютере.
Работа по протоколам HTTP и FTP напрямую, без серверов посредников (proxy). Никакие другие программы, кроме
указанных, не передают данные по TCPIP. Для доступа к ответам нажмите «Ответить».
1. http && ftp
2. http && ((ip.src==192.168.0.1 && tcp.dstport==80) || (ip.dst==192.168.0.1 && tcp.srcport==80)) || ftp &&
((ip.src==192.168.0.1 && tcp.dstport==21) || (ip.dst==192.168.0.1 && tcp.srcport==21))
3. (http || ftp) && ip.addr==192.168.0.1
4. (ip.src==192.168.0.1 && tcp.dstport==80) || (ip.dst==192.168.0.1 && tcp.srcport==80) || (ip.src==192.168.0.1 &&
tcp.dstport==21) || (ip.dst==192.168.0.1 && tcp.srcport==21)
5. http && ip.addr=192.168.0.1 && tcp.port=80 || ftp && ip.addr=192.168.0.1 && tcp.port=21
6. (http || ftp ) && ((ip.src==192.168.0.1 && tcp.srcport>1024 || ip.dst==192.168.0.1 && tcp.dstport>1024))
7. (http || ftp ) && (ip.addr==192.168.0.1 && (tcp.srcport>1024 || tcp.dstport>1024))
8. (http || ftp) && tcp.port>1024
Ответ: 2, 6
6. Операционные системы (4 балла)
[Round Robin]
В вычислительных системах с одним центральным процессором в каждый момент времени центральный процессор
может осуществлять вычисления только одного из процессов. Многозадачные операционные системы, поддерживающие
одновременно несколько процессов, разделяют ресурс центрального процессора между процессами, поочередно
предоставляя каждому из процессов определенное время использования центрального процессора, тем самым реализуя
9
«псевдопараллельное» выполнение этих процессов. Правило, по которому ресурс распределяет время между несколькими
потребителями, называется дисциплиной обслуживания.
Одной из распространенных дисциплин обслуживания для управления ресурсом центрального процессора в
операционных системах является круговая очередь (Round Robin). Каждому процессу, находящемуся в этой очереди,
присвоен порядковый номер. Операционная система сначала дает процессу с минимальным номером использовать
центральный процессор в течение заданного периода времени, называемого квантом непрерывного выполнения. По
истечении этого кванта, операционная система предоставляет такой же по продолжительности квант непрерывного
выполнения процессу со следующим по возрастанию номером. Если закончился квант непрерывного выполнения процесса с
максимальным номером из этой очереди, следующий квант предоставляется опять процессу с минимальным номером и так
далее. Если процесс завершил вычисления, он выбывает из очереди. При этом если он не использовал полностью последний
квант непрерывного выполнения, операционная система не дожидается окончания кванта и предоставляет новый квант
непрерывного выполнения следующему по круговой очереди процессу.
Продолжительность кванта непрерывного выполнения и продолжительность вычислений на центральном процессоре,
необходимую каждому процессу, можно измерять в условных единицах – тактах. Например, если процессу P0 нужно до
завершения периода вычислений 12 тактов, а квант непрерывного выполнения составляет 5 тактов, то в общей сложности
квант непрерывного выполнения должен быть предоставлен такому процессу 3 раза, причем в последний раз он завершит
вычисления до окончания выделенного кванта. Для передачи кванта непрерывного выполнения следующему процессу
операционная система должна выполнить ряд служебных операций, затрачивая на них фиксированное количество тактов.
Это количество тактов одинаково при любой операции передачи кванта непрерывного исполнения другому процессу, в том
числе, если предыдущий процесс завершился, не использовав полностью свой квант непрерывного выполнения. Если
передача кванта непрерывного выполнения происходит тому же процессу, который перед этим выполнялся, поскольку в
очереди не осталось других процессов, операционная система не затрачивает на такую передачу дополнительных тактов и
очередной квант непрерывного выполнения этого процесса начинается сразу же после окончания предыдущего.
Для оценки производительности часто используется показатель среднее время выполнения процессов. Для каждого
процесса определяется полное время выполнения процесса – время от его появления в очереди до завершения его
вычисления в последнем предоставленном ему кванте непрерывного выполнения. Это время включает в себя как такты, на
протяжении которых он вычислялся на центральном процессоре, так и такты, которые он ожидал своей очереди на
вычисление. Времена полного выполнения всех процессов суммируются и делятся на количество процессов. В результате
получается среднее время выполнения процессов. Этот показатель зависит от выбранной продолжительности кванта
непрерывного выполнения.
Задача. В начальный момент времени очередь образовали одновременно появившиеся три процесса, которым
присвоены номера P0, P1 и P2. При этом процессу P0 требуется до завершения периода вычислений 59 тактов, процессу P1 –
29 тактов, а процессу P2 – 11 тактов.
Время, необходимое операционной системе на передачу кванта непрерывного выполнения очередному процессу
составляет 2 такта. В начальный момент времени операционная система сразу же предоставляет квант непрерывного
выполнения процессу P0, не затрачивая дополнительных тактов на передачу кванта непрерывного выполнения.
Определите, при какой продолжительности кванта непрерывного выполнения, среднее время выполнения этих
процессов окажется минимальным. В ответе укажите целое число – количество тактов в этом кванте непрерывного
выполнения.
Ответ: 15
7. Технологии программирования (3 балла)
Вы работаете бухгалтером в некоторой компании. В компании работает n человек. Про каждого человека известно,
какую зарплату он получает. Также, иногда, компания выдаёт каждому сотруднику премию. Размер премии может
варьироваться, но всем сотрудникам выдаётся премия одинакового размера. Кроме того, иногда нужно составлять
финансовый отчёт, в котором нужно сравнить суммы, получаемые каждым сотрудником в качестве зарплат и в качестве
премий.
Более конкретно, могут происходить следующие ситуации:
 Каждый работник получает свою зарплату ai.
 Каждый работник получает премию b. b может быть различным для разных выдач премии.
 Для отчёта, нужно сказать, сколько работников на данный момент получили больше премиями, чем зарплатой.
Формат входного файла
В первой строке входного файла input.txt находится целое число n (1 ≤ n ≤ 500) — число работников компании. В
следующей строке заданы n целых чисел ai (1 ≤ ai ≤ 500) — зарплаты работников.
В третьей строке задано число запросов t (1 ≤ t ≤ 500). Далее, в t строках идут сами запросы. Запросы бывают трёх
видов:
9. «1» — выдать каждому работнику зарплату.
«2 b» (1 ≤ b ≤ 500) — выдать каждому работнику премию b.
«3» — узнать, сколько работников получили больше премиями, чем зарплатами.
Формат выходного файла
Выведите в собственной строке ответ на каждый запрос типа «3».
Пример входных и выходных данных
input.txt output.txt
3
10 20 30
5
1
3
10
1
2 20
3
2 20
3
8. Технологии программирования (6 баллов)
Вы — директор завода по производству кваса. Ваш завод произвёл n литров кваса, который теперь нужно разлить по
бутылкам. У вас есть достаточно большое количество бутылок трёх различных объёмов: a, b и c литров.
Вам не хочется терять ни литра драгоценного продукта, поэтому, все n литров должны быть разлиты по бутылкам.
Также, вы хотите использовать как можно меньшее число бутылок. Определите, сколько бутылок каждого типа нужно
наполнить.
Формат входного файла
В первой строке входного файла input.txt находится целое число n (1 ≤ n ≤ 500) — имеющееся число литров кваса. В
следующей строке заданы целые числа a, b и c (1 ≤ a, b, c ≤ 500) — объёмы бутылок первого, второго и третьего вида,
соответственно.
Формат выходного файла
В первой строке выходного файла output.txt требуется вывести «YES», если можно разлить все n литров по бутылкам
заданного объёма, и «NO, если это сделать нельзя.
В случае, если в первой строке выведено «YES», во второй строке должно содержаться три числа: сколько бутылок
первого, второго и третьего вида, соответственно, нужно наполнить. Сумма выведенных чисел должна быть минимальна
среди всех возможных ответов.
В случае, если ответов с минимальным суммарным количеством бутылок несколько, выведите любой из них.
Пример входных и выходных данных
input.txt output.txt
9
2 4 6
NO
14
3 6 2
YES
0 2 1

More Related Content

What's hot

Logarifmicheskaya funkciya
Logarifmicheskaya funkciyaLogarifmicheskaya funkciya
Logarifmicheskaya funkciyaIvanchik5
 
программирование на Maple. Лекция 2
программирование на Maple. Лекция 2программирование на Maple. Лекция 2
программирование на Maple. Лекция 2Andrei V, Zhuravlev
 
программирование на Maple. Лекция 1
программирование на Maple. Лекция 1программирование на Maple. Лекция 1
программирование на Maple. Лекция 1Andrei V, Zhuravlev
 
Лекция №1. Введение. Предмет "Теория вычислительных процессов"
Лекция №1. Введение. Предмет "Теория вычислительных процессов"Лекция №1. Введение. Предмет "Теория вычислительных процессов"
Лекция №1. Введение. Предмет "Теория вычислительных процессов"Nikolay Grebenshikov
 
математик анализ хичээлийн лекц № 2
математик анализ хичээлийн лекц № 2математик анализ хичээлийн лекц № 2
математик анализ хичээлийн лекц № 2narangerelodon
 
Презентация на тему: Методика подготовки учащихся к итоговой аттестации по ин...
Презентация на тему: Методика подготовки учащихся к итоговой аттестации по ин...Презентация на тему: Методика подготовки учащихся к итоговой аттестации по ин...
Презентация на тему: Методика подготовки учащихся к итоговой аттестации по ин...2berkas
 
математик анализ лекц№5
математик анализ лекц№5математик анализ лекц№5
математик анализ лекц№5narangerelodon
 
понятие функции
понятие функциипонятие функции
понятие функцииttku
 
556 1 алгебра. 10кл.-кузнецова, муравьева и др_минск, 2013 -271с
556 1  алгебра. 10кл.-кузнецова, муравьева и др_минск, 2013 -271с556 1  алгебра. 10кл.-кузнецова, муравьева и др_минск, 2013 -271с
556 1 алгебра. 10кл.-кузнецова, муравьева и др_минск, 2013 -271сpsvayy
 
Способы записи алгоритмов
Способы записи алгоритмовСпособы записи алгоритмов
Способы записи алгоритмовAndrey Dolinin
 
Общие сведения о языке программирования Паскаль
Общие сведения о языке программирования ПаскальОбщие сведения о языке программирования Паскаль
Общие сведения о языке программирования ПаскальAndrey Dolinin
 
математик анализ лекц№10
математик анализ лекц№10математик анализ лекц№10
математик анализ лекц№10narangerelodon
 
Разбор задач модуля "Теория графов ll"
Разбор задач модуля "Теория графов ll"Разбор задач модуля "Теория графов ll"
Разбор задач модуля "Теория графов ll"DEVTYPE
 
10 a n_r
10 a n_r10 a n_r
10 a n_r4book
 
Алгоритмы на ruby: перебор и рекурсия
Алгоритмы на ruby: перебор и рекурсияАлгоритмы на ruby: перебор и рекурсия
Алгоритмы на ruby: перебор и рекурсияEvgeny Smirnov
 
Sem 27 02 09 3
Sem 27 02 09 3Sem 27 02 09 3
Sem 27 02 09 3Olga92
 
Ruby — Паттерны программирования
Ruby — Паттерны программированияRuby — Паттерны программирования
Ruby — Паттерны программированияEvgeny Smirnov
 
Основы теории графов - I
Основы теории графов - IОсновы теории графов - I
Основы теории графов - IDEVTYPE
 

What's hot (20)

Logarifmicheskaya funkciya
Logarifmicheskaya funkciyaLogarifmicheskaya funkciya
Logarifmicheskaya funkciya
 
программирование на Maple. Лекция 2
программирование на Maple. Лекция 2программирование на Maple. Лекция 2
программирование на Maple. Лекция 2
 
программирование на Maple. Лекция 1
программирование на Maple. Лекция 1программирование на Maple. Лекция 1
программирование на Maple. Лекция 1
 
Лекция №1. Введение. Предмет "Теория вычислительных процессов"
Лекция №1. Введение. Предмет "Теория вычислительных процессов"Лекция №1. Введение. Предмет "Теория вычислительных процессов"
Лекция №1. Введение. Предмет "Теория вычислительных процессов"
 
Logika
LogikaLogika
Logika
 
математик анализ хичээлийн лекц № 2
математик анализ хичээлийн лекц № 2математик анализ хичээлийн лекц № 2
математик анализ хичээлийн лекц № 2
 
Презентация на тему: Методика подготовки учащихся к итоговой аттестации по ин...
Презентация на тему: Методика подготовки учащихся к итоговой аттестации по ин...Презентация на тему: Методика подготовки учащихся к итоговой аттестации по ин...
Презентация на тему: Методика подготовки учащихся к итоговой аттестации по ин...
 
математик анализ лекц№5
математик анализ лекц№5математик анализ лекц№5
математик анализ лекц№5
 
понятие функции
понятие функциипонятие функции
понятие функции
 
556 1 алгебра. 10кл.-кузнецова, муравьева и др_минск, 2013 -271с
556 1  алгебра. 10кл.-кузнецова, муравьева и др_минск, 2013 -271с556 1  алгебра. 10кл.-кузнецова, муравьева и др_минск, 2013 -271с
556 1 алгебра. 10кл.-кузнецова, муравьева и др_минск, 2013 -271с
 
Способы записи алгоритмов
Способы записи алгоритмовСпособы записи алгоритмов
Способы записи алгоритмов
 
Общие сведения о языке программирования Паскаль
Общие сведения о языке программирования ПаскальОбщие сведения о языке программирования Паскаль
Общие сведения о языке программирования Паскаль
 
математик анализ лекц№10
математик анализ лекц№10математик анализ лекц№10
математик анализ лекц№10
 
Разбор задач модуля "Теория графов ll"
Разбор задач модуля "Теория графов ll"Разбор задач модуля "Теория графов ll"
Разбор задач модуля "Теория графов ll"
 
10 a n_r
10 a n_r10 a n_r
10 a n_r
 
функция
функцияфункция
функция
 
Алгоритмы на ruby: перебор и рекурсия
Алгоритмы на ruby: перебор и рекурсияАлгоритмы на ruby: перебор и рекурсия
Алгоритмы на ruby: перебор и рекурсия
 
Sem 27 02 09 3
Sem 27 02 09 3Sem 27 02 09 3
Sem 27 02 09 3
 
Ruby — Паттерны программирования
Ruby — Паттерны программированияRuby — Паттерны программирования
Ruby — Паттерны программирования
 
Основы теории графов - I
Основы теории графов - IОсновы теории графов - I
Основы теории графов - I
 

Similar to 777

сборник-задач-Pascal
сборник-задач-Pascalсборник-задач-Pascal
сборник-задач-PascalSergey_Mitrofanov
 
егэ часть а
егэ часть аегэ часть а
егэ часть аdasha2012
 
чернякова г.в.
чернякова г.в.чернякова г.в.
чернякова г.в.sharikdp
 
Основы комбинаторики II. Разбор задач
Основы комбинаторики II. Разбор задачОсновы комбинаторики II. Разбор задач
Основы комбинаторики II. Разбор задачDEVTYPE
 
Алгоритмы и структуры данных осень 2013 лекция 8
Алгоритмы и структуры данных осень 2013 лекция 8Алгоритмы и структуры данных осень 2013 лекция 8
Алгоритмы и структуры данных осень 2013 лекция 8Technopark
 
КЧ для сайта.pptx
КЧ для сайта.pptxКЧ для сайта.pptx
КЧ для сайта.pptxFontanova
 
016
016016
016JIuc
 
Практикум по выполнению блока с информатика
Практикум по выполнению блока с информатикаПрактикум по выполнению блока с информатика
Практикум по выполнению блока с информатикаЕкатерина Луговова
 
Use of eliptic curves for generating digital signature
Use of eliptic curves for generating digital signatureUse of eliptic curves for generating digital signature
Use of eliptic curves for generating digital signatureAndrei Poliakov
 
Структурные формулы и функциональные схемы
Структурные формулы и функциональные схемыСтруктурные формулы и функциональные схемы
Структурные формулы и функциональные схемыaleksashka3
 
Lecture 03 Алгебра множеств. Конечные множества.
Lecture 03 Алгебра множеств. Конечные множества.Lecture 03 Алгебра множеств. Конечные множества.
Lecture 03 Алгебра множеств. Конечные множества.Vladimir Tcherniak
 
Алгоритмы и структуры данных весна 2014 лекция 1
Алгоритмы и структуры данных весна 2014 лекция 1Алгоритмы и структуры данных весна 2014 лекция 1
Алгоритмы и структуры данных весна 2014 лекция 1Technopark
 
Презентация на тему: Методические особенности подготовки учащихся к выполнени...
Презентация на тему: Методические особенности подготовки учащихся к выполнени...Презентация на тему: Методические особенности подготовки учащихся к выполнени...
Презентация на тему: Методические особенности подготовки учащихся к выполнени...2berkas
 

Similar to 777 (20)

сборник-задач-Pascal
сборник-задач-Pascalсборник-задач-Pascal
сборник-задач-Pascal
 
егэ часть а
егэ часть аегэ часть а
егэ часть а
 
чернякова г.в.
чернякова г.в.чернякова г.в.
чернякова г.в.
 
Основы комбинаторики II. Разбор задач
Основы комбинаторики II. Разбор задачОсновы комбинаторики II. Разбор задач
Основы комбинаторики II. Разбор задач
 
Алгоритмы и структуры данных осень 2013 лекция 8
Алгоритмы и структуры данных осень 2013 лекция 8Алгоритмы и структуры данных осень 2013 лекция 8
Алгоритмы и структуры данных осень 2013 лекция 8
 
КЧ для сайта.pptx
КЧ для сайта.pptxКЧ для сайта.pptx
КЧ для сайта.pptx
 
016
016016
016
 
Практикум по выполнению блока с информатика
Практикум по выполнению блока с информатикаПрактикум по выполнению блока с информатика
Практикум по выполнению блока с информатика
 
Use of eliptic curves for generating digital signature
Use of eliptic curves for generating digital signatureUse of eliptic curves for generating digital signature
Use of eliptic curves for generating digital signature
 
алгоритм
алгоритмалгоритм
алгоритм
 
Diskretn analiz
Diskretn analizDiskretn analiz
Diskretn analiz
 
Diskretn analiz
Diskretn analizDiskretn analiz
Diskretn analiz
 
Структурные формулы и функциональные схемы
Структурные формулы и функциональные схемыСтруктурные формулы и функциональные схемы
Структурные формулы и функциональные схемы
 
Lecture 03 Алгебра множеств. Конечные множества.
Lecture 03 Алгебра множеств. Конечные множества.Lecture 03 Алгебра множеств. Конечные множества.
Lecture 03 Алгебра множеств. Конечные множества.
 
Алгоритмы и структуры данных весна 2014 лекция 1
Алгоритмы и структуры данных весна 2014 лекция 1Алгоритмы и структуры данных весна 2014 лекция 1
Алгоритмы и структуры данных весна 2014 лекция 1
 
Презентация на тему: Методические особенности подготовки учащихся к выполнени...
Презентация на тему: Методические особенности подготовки учащихся к выполнени...Презентация на тему: Методические особенности подготовки учащихся к выполнени...
Презентация на тему: Методические особенности подготовки учащихся к выполнени...
 
робот
роботробот
робот
 
8 3-4
8 3-48 3-4
8 3-4
 
презентация1
презентация1презентация1
презентация1
 
Alg urabnprstep
Alg urabnprstepAlg urabnprstep
Alg urabnprstep
 

More from ssusera868ff (20)

Trigonometricheskie uravneniya
Trigonometricheskie uravneniyaTrigonometricheskie uravneniya
Trigonometricheskie uravneniya
 
777
777777
777
 
A6c
A6cA6c
A6c
 
111
111111
111
 
Trigonometria
TrigonometriaTrigonometria
Trigonometria
 
777
777777
777
 
Kontrolynyh rabot-po-matematike
Kontrolynyh rabot-po-matematikeKontrolynyh rabot-po-matematike
Kontrolynyh rabot-po-matematike
 
555
555555
555
 
777
777777
777
 
Prakticheskih rabot-ppkrs
Prakticheskih rabot-ppkrsPrakticheskih rabot-ppkrs
Prakticheskih rabot-ppkrs
 
23
2323
23
 
111
111111
111
 
23
2323
23
 
23
2323
23
 
555
555555
555
 
23
2323
23
 
777
777777
777
 
23
2323
23
 
23
2323
23
 
23
2323
23
 

777

  • 1. Задания отборочного этапа олимпиады 2014-15 года для 11 класса Отборочный этап 11 класса. 1 тур (приведен один из вариантов заданий) 1. Кодирование информации. Системы счисления (3 балла) [Периодическая дробь] Дано число A, запись которого в восьмеричной системе счисления является бесконечной периодической дробью: 0,(14)8. На какое минимальное целое положительное число B нужно умножить число A, чтобы в результате получилось целое положительное число. В ответе запишите число B в десятичной системе счисления. Ответ: 21 2. Кодирование информации. Системы счисления (3 балла) [Палиндромы] Снусмумрику очень нравятся красивые числа. Больше всего его привлекают числа-палиндромы, то есть такие числа, которые читаются одинаково слева направо и справа налево. Например, число 122110 и число C4C16 будут палиндромами. Недавно Снусмумрик обнаружил, что существуют числа, запись которых сразу в нескольких позиционных системах счисления будет палиндромом. Пока он нашел один такой пример: шестнадцатеричное число F6F16 в восьмеричной системе будет записываться как 75578, то есть запись этого числа является палиндромом и в шестнадцатеричной, и в восьмеричной системе счисления. Снусмумрик решил поэкспериментировать и с другими позиционными системами счисления. Помогите ему в этом и определите, сколько существует целых положительных чисел, таких, что их запись будет палиндромом и в четверичной, и в шестнадцатеричной системе счисления, причем в шестнадцатеричной системе счисления будет содержать ровно 3 значащих разряда. В ответе укажите целое число. Ответ: 24 3. Кодирование информации. Количество информации. Вероятностный подход (2 балла) [Случайные последовательности] Генератор случайных чисел создал последовательность из N чисел, каждое из которых с равной вероятностью является одним из натуральных чисел из диапазона от 0 до 7 включительно. Чему равна длина последовательности N, если известно, что сообщение «вся последовательность состоит из одинаковых чисел» несет в себе ровно 21 бит информации? В ответе запишите целое число. Ответ: 8 4. Кодирование информации. Количество информации. Алфавитный подход (2 балла) [Программа для робота] Хемуль программирует робота, который может передвигаться по квадратному полю. Поле разбито на равные квадратные клетки так, что длина каждой стороны поля – ровно M клеток. Со свойственной ему педантичностью, Хемуль пронумеровал все клетки поля, присвоив каждой клетке уникальный номер. Поскольку робот Хемуля может передвигаться только в пределах поля, Хемуль решил записывать программу для управления роботом как набор номеров клеток в порядке, в котором робот должен их посетить, используя для записи каждого номера одинаковое минимально возможное количество бит. Никакой дополнительной информации кроме этой последовательности номеров программа Хемуля не содержит. Снорк обратил внимание, что робот Хемуля за один ход может переместиться только в одну из восьми клеток, окружающих клетку, в которой он находился перед началом хода, и предложил записывать программу другим способом – как последовательность команд роботу на единичное перемещение в одном из восьми направлений. Для записи каждой команды на единичное перемещение Снорк решил использовать одинаковое минимально возможное количество бит. Перед первой командой на единичное перемещение Снорк решил записывать номер клетки, из которой робот начинает движение, также как и Хемуль, используя для записи этого номера минимально возможное количество бит. Никакой дополнительной информации кроме последовательности команд и номера первой клетки программа Снорка не содержит. Снорк выбрал маршрут, в котором робот последовательно посещает 16 клеток, включая начальную и конечную клетку маршрута, и сравнил записи своей программы и программы Хемуля, описывающих этот маршрут. В результате сравнения Снорк обнаружил, что для хранения его программы требуется на 135 бит меньше, чем для хранения программы Хемуля. Определите, при каком максимальном размере поля это возможно. В ответе укажите одно целое число M – количество клеток по одной из сторон поля. Ответ: 64 5. Основы логики. Анализ логических схем. (2 балла). [Логический конструктор] Снифф нашел конструктор, состоящий из логических элементов и инструкцию по сборке. В инструкции была приведена схема, и было описано, какой логический элемент реализует какую логическую операцию, преобразуя значения, подаваемые слева элемента на вход в значение, получаемое справа элемента на выходе. Название логической операции Конъюнкция (AND) Дизъюнкция (OR) Исключающее ИЛИ (XOR) Обозначение на схеме Снифф собрал в соответствии с инструкцией следующую схему и стал экспериментировать, подавая различные значения Ai и Bi на вход и наблюдая значения Si и P3 на выходе схемы: &0 0 0 >=10 0 0 =10 0 0
  • 2. 2 Определите значения, которые Снифф подал на входы Bi, если известно, что на входы Ai он подал значения A0=0, A1=1, A2=1, A3=0, а на выходе получил значения S0=1, S1=0, S2=0, S3=0, P3=1. В ответе укажите подряд без пробелов четыре значения в следующем порядке: значение, поданное на вход B0, значение, поданное на вход B1, значение, поданное на вход B2, значение, поданное на вход B3. Ответ: 1101 6. Основы логики. Упрощение логического выражения (2 балла) [Странная симметрия] Упростите логическое выражение или укажите его результат (при его однозначности). Результат упрощения может содержать только операции инверсии, конъюнкции и дизъюнкции. (A and B and not C → A) ↔ (A → not C and B and A) Комментарий по вводу ответа: операнды вводятся большими латинскими буквами; логические операции обозначаются, соответственно как not, and и or. Скобки используются только для изменения порядка выполнения операций. Если порядок выполнения операций очевиден из их приоритетов – дополнительное использование скобок считается ошибкой. При однозначном ответе – истинный ответ обозначается как 1, а ложный как 0. Пример записи ответа: (A or not B) and C Ответ: not A or B and not C || not A or not C and B || B and not C or not A || not C and B or not A 7. Основы логики. Синтез выражения по таблице истинности или логической схеме (1 балл) [Циклический сдвиг] Тофсла построил таблицу истинности логической функции от трех аргументов F(A,B,C) и обнаружил, что функция принимает истинное значение только для двух наборов значений аргументов, причем эти два набора расположены в таблице истинности подряд друг за другом. Комбинации значений аргументов в таблице истинности Тофслы выстроены сверху вниз в лексикографическом порядке. Порядок следования столбцов: первый столбец – A, второй – B, третий – C.
  • 3. 3 Вифсла сдвинул столбец значений логической функции Тофслы циклически вверх на шесть позиций и обнаружил, что логическая функция G(A,B,C), задаваемая получившимися после сдвига значениями, принимает истинное значение для комбинаций аргументов, каждая из которых является противоположной одной из комбинаций, для которых была истина функция Тофслы. Противоположной комбинацией значений аргументов будем считать комбинацию, в которой значение каждого аргумента является инверсией значения соответствующего аргумента в исходной комбинации. Найдите функцию F(A,B,C), которую построил Тофсла и приведите в ответе логическое выражение, описывающее эту функцию в наиболее упрощенном виде. Логическое выражение может содержать логические переменные A, B и C и логические операции отрицания, конъюнкции или дизъюнкции, обозначаемые как not, and и or соответственно, и не должно содержать скобок. Если таких функций несколько – приведите одну любую из них. Ответ: A and B || B and A || not A and B || B and not A 8. Алгоритмизация и программирование. Формальный исполнитель (4 балла) [Рекурсивная заливка] Дано растровое изображение, исходно содержащее точки двух цветов – белого (фон) и черного (фигура). На изображении введена система координат с центром в верхнем левом углу и направлением осей как показано на рисунке: Муми-папа решил использовать метод, позволяющий закрасить все точки внутри фигуры зеленым цветом. Метод представляет собой рекурсивный вызов процедуры «Залить», которой при каждом вызове передаются два параметра. Первый параметр – координата X и второй параметр – координата Y некоторой точки. В процедуре «Залить» реализован следующий алгоритм: 1. Проверить цвет в точке с координатами X, Y, переданными при вызове процедуры в качестве первого и второго параметров, соответственно. Если точка с этими координатами – белого цвета, то выполнить следующие действия: a. Окрасить точку с координатами X, Y зеленым цветом. b. Вызвать процедуру «Залить», передав ей значения параметров: первый параметр равен X+1, второй параметр равен Y. c. Вызвать процедуру «Залить», передав ей значения параметров: первый параметр равен X-1, второй параметр равен Y. d. Вызвать процедуру «Залить», передав ей значения параметров: первый параметр равен X, второй параметр равен Y+1. e. Вызвать процедуру «Залить», передав ей значения параметров: первый параметр равен X, второй параметр равен Y-1. Если точка с этими координатами не белого цвета, то завершить работу процедуры. Муми-папа вызвал процедуру со значениями параметров X=4 и Y=4 и стал наблюдать за закрашиванием фигуры. Первой закрасилась точка с координатами X=4 и Y=4, затем точка с координатами X=5 и Y=4, затем X=6 и Y=4 и т.д. В результате все точки внутри фигуры оказались окрашены в зеленый цвет. Определите координаты точки, которая была последней окрашена в зеленый цвет. В ответе укажите через запятую два целых числа – сначала координату X, а затем координату Y. Ответ: 6,2 9. Алгоритмизация и программирование. Планирование (4 балла) [Настройка телескопа] Хемуль построил телескоп для наблюдения за кометой. Поскольку это очень сложный прибор, его требуется настроить. Настройка телескопа заключается в последовательном выполнении шести операций строго в указанном порядке: O1, O2, O3, O4, O5, O6. В Муми-доле живут четыре мастера, каждый из которых умеет осуществлять некоторые из этих операций. Ниже приведена таблица, указывающая, какие операции может осуществлять какой мастер: Мастер Операции, которые он умеет выполнять Мастер1 O1, O5, O6 Мастер2 O2, O3, O5 Мастер3 O1, O2, O4 Мастер4 O3, O4, O6 Жилища мастеров расположены на некотором расстоянии друг от друга. Время, которое необходимо Хемулю, чтобы перенести телескоп от жилища одного мастера до жилища другого мастера, приведено в таблице: Мастер1 Мастер2 Мастер3 Мастер4 Мастер1 ----------- 1 час 2 часа 3 часа
  • 4. 4 Мастер2 1 час ----------- 3 часа 2 часа Мастер3 2 часа 3 часа ----------- 1 час Мастер4 3 часа 2 часа 1 час ----------- Хемуль очень педантичен, поэтому он начинает свой путь с посещения одного из мастеров, которые могут выполнить операцию O1, затем переносит телескоп к мастеру, который может выполнить операцию O2 и т.д., всегда используя прямую дорогу между соответствующими мастерами и затрачивая на нее время, указанное в таблице. Каждый мастер затрачивает на каждую операцию одинаковое количество времени – 1 час. Мастер начинает работать тот час же, как только Хемуль приходит в его жилище. Хемуль покидает жилище мастера и отправляется к следующему тот час же, как только мастер заканчивает операцию. Если мастер может выполнить две идущие подряд операции – Хемуль может остаться в его жилище и дать ему возможность выполнить обе операции. Найдите для Хемуля оптимальную последовательность посещения мастеров, чтобы он затратил минимальное время на полную настройку телескопа. Посчитайте для этой последовательности (она может быть не единственна) время в часах от момента, когда Хемуль пришел в жилище мастера, который может выполнить операцию O1 до окончания одним из мастеров выполнения операции O6. В ответе укажите целое число. Ответ: 10 10. Алгоритмизация и программирование. Блок-схема, обратная задача (1 балл) [Кручу-верчу] Дана блок-схема алгоритма. Перед началом его выполнения целочисленный одномерный массив A из 10 элементов был равен (0, 1, 2, 3, 4, 5, 6, 7, 8, 9). После завершения выполнения алгоритма массив A оказался равен (2, 3, 1, 4, 7, 5, 8, 9, 0, 6). Определите, какие значения были у элементов целочисленного одномерного массива mas перед началом выполнения алгоритма, если известно, что каждый его элемент может принимать только значения в диапазоне от 1 до 4. Нумерация элементов массивов начинается с 1. В ответе укажите через запятую 4 числа – элементы массива mas в порядке их следования в массиве. Ответ: 2, 1, 3, 2
  • 5. 5 Отборочный этап 11 класса. 2 тур (приведен один из вариантов заданий) 1. Электронные таблицы. Адресация ячеек и вычисления (2 балла) [Остатки] Дан фрагмент электронной таблицы в режиме отображения формул: Ячейку C1 скопировали в ячейки D1 и E1. Ячейку A3 скопировали в ячейки A4 и A5. Ячейку B2 скопировали во все ячейки диапазона B2:E5. Определите, какие два двузначных натуральных числа записали в ячейки B1 и A2, если в результате вычисления формул получились значения в ячейках: B5=5, C5=3, D5=1, E5=18. В ответе запишите через пробел два натуральных числа: сначала число, которое было записано в ячейку B1, а потом число, которое было записано в ячейку A2. Ответ: 13 15 2. Электронные таблицы. Графики и диаграммы (1 балл) [Логичные столбики] В ячейку E2 электронной таблицы поместили формулу: =ЕСЛИ(ИЛИ(НЕ(И(#2=1;НЕ(#2=1)));И(НЕ(#2=1);#2=1));1;0), где знаками # зашифрованы имена столбцов: A, B, C и D. Известно, что каждое из этих имен столбцов встречается в формуле ровно один раз. В каждую ячейку диапазона A2:D17 записали или 0 или 1 (в результате часть ячеек диапазона содержит число 0, а часть – число 1), а ячейку E2 скопировали во все ячейки диапазона E3:E17. После этого выделили диапазон A2:E17 и построили для выделенного диапазона нормированную гистограмму с накоплением. Результат приведен на рисунке: Определите, какая формула была записана в ячейке E2. В ответе укажите подряд без пробелов четыре буквы: названия столбцов в порядке их упоминания в формуле. Например, если построенная гистограмма свидетельствует о том, что в ячейке E2 была записана формула «=ЕСЛИ(ИЛИ(НЕ(И(D2=1;НЕ(C2=1)));И(НЕ(B2=1);A2=1));1;0)», то в ответ следует записать DCBA. Ответ: BADC 3. Сортировка и фильтрация данных (2 балла) [Перемешанная таблица] Одним из принципов сортировки символьных последовательностей является сортировка в лексикографическом порядке на основе сравнения кодов отдельных символов по определенной кодовой таблице. В кодовой таблице каждому символу взаимно однозначно соответствует некоторое неотрицательное целое число – код этого символа. В этом случае мы говорим, что последовательность символов α предшествует последовательности символов β, если первые k символов (k>=0) обеих последовательностей совпадают, а k+1 символ последовательности α имеет код меньше, чем k+1 символ последовательности β. Арабские цифры тоже являются символами алфавита. В большинстве кодовых таблиц им сопоставляются идущие подряд последовательности кодов, так, чтобы код большей цифры оказывался больше кода меньшей цифры. Например, в таблице ASCII арабским цифрам соответствуют коды от 48 до 57, причем символу «0» соответствует код 48, символу «1» – код 49 и так до символа «9» с кодом 57. Поэтому если мы отсортируем по описанному выше принципу последовательности цифр одинаковой длины, то результат этой сортировки совпадет с сортировкой десятичных чисел, соответствующих этим последовательностям. Снусмумрик решил подшутить над Муми-троллем и поменял на его компьютере кодовую таблицу таким образом, что арабские цифры по-прежнему занимают диапазон кодов от 48 до 57, но не расположены в порядке возрастания, а перемешаны. В результате, когда Муми-тролль отсортировал по возрастанию набор из 16-ти четырехсимвольных цифровых последовательностей, он получил такой результат:
  • 6. 6 3520 3526 3588 3584 3136 3134 3105 3103 2919 2917 2990 2997 2875 2879 2826 2821 Определите, какие коды имеют арабские цифры в кодовой таблице, измененной Снусмумриком. В ответе укажите через пробел три числа: сначала код цифры 2, затем код цифры 7 и затем код цифры 9. Ответ: 55 54 53 4. Мультимедиа технологии (3 балла) [Кривые] Одним из распространенных инструментов цветокоррекции является инструмент «Кривые» («Curves»). Инструмент представляет собой график, показывающей соотношение входной и выходной яркости всего изображения или отдельного цветового канала (например, в модели RGB – красного, зеленого или синего). По горизонтальной оси откладываются значения яркости исходного изображения, а по вертикальной оси – нового изображения, получаемого в результате цветокоррекции. Таким образом, в зависимости от формы кривой для всех точек с одинаковой яркостью по соответствующему каналу устанавливаются новые значения яркости. Например, в соответствии с кривой, представленной ниже, все точки, имевшие по красному каналу яркость 200, теперь будут иметь по этому каналу яркость 135 и т.д. Муми-тролль подготовил 6 вариантов кривых, представленных в таблице, и обозначил каждую кривую буквой: А Б В
  • 7. 7 Г Д Е Муми-тролль решил проверить, как работают эти кривые. Он подготовил следующее исходное изображение: Затем он опробовал на этом изображении три из подготовленных им кривых и получил следующие изображения: Изображение 1 Изображение 2 Изображение 3 Известно, что в каждом случае к исходному изображению была применена только одна из подготовленных кривых. Определите, какой из вариантов получен с помощью какой кривой. В ответе укажите подряд без пробелов последовательность из трех букв: сначала букву, соответствующую кривой, с помощью которой получено изображение 1, затем букву, соответствующую кривой, с помощью которой получено изображение 2, и затем букву, соответствующую кривой, с помощью которой получено изображение 3. Ответ: ВГА 5. Телекоммуникационные технологии (3 балла). [Сниффер] Большинство сетевых приложений построено по архитектуре клиент-сервер. Взаимодействие приложений через стек протоколов TCPIP осуществляется с использованием многоуровневой адресации. Данные между компьютерами (хостами) доставляет протокол IP. Каждое сообщение протокола IP (IP-пакет) в заголовке содержит IP-адрес отправителя и IP-адрес получателя. По IP-адресу получателя определяется маршрут следования пакета и осуществляется его доставка. В IP-пакет инкапсулировано или сообщение протокола TCP, или сообщение UDP. Протоколы TCP и UDP доставляют сообщения конкретному приложению на хосте. В заголовках TCP и UDP содержатся особые адреса взаимодействующих приложений - номера порта отправителя и порта получателя. Таким образом, сообщение сначала доставляется на хост по IP-адресу получателя, а потом конкретному приложению по номеру порта получателя. При взаимодействии клиента и сервера заранее известен номер порта программы-сервера. Это или стандартный для определенного прикладного протокола номер порта, или любой порт, на использование которого настроена программа- сервер. Например, для протокола HTTP (Web) стандартный порт сервера - 80 TCP, но Web-сервер может быть настроен на любой порт, положим – 8081 TCP. В первом случае для подключения к серверу на Web-клиенте достаточно указать адрес хоста, на котором работает программа-сервер, а номер порта получателя (по умолчанию 80 TCP) будет подставлен в заголовок TCP автоматически. Во втором случае в адресной строке после адреса надо явно указывать номер порта через двоеточие (например, 192.168.0.1:8081).
  • 8. 8 Программа-клиент занимает любой свободный порт больше 1024. На одном компьютере может быть запущено несколько клиентов, которые займут разные порты, при этом эти клиенты могут работать как с разными серверами, так и с одним и тем же сервером. Для анализа трафика используются программы-снифферы. Они служат для перехвата всего трафика (входящего и исходящего) на наблюдаемом сетевом интерфейсе (например, сетевой карте) и последующего его анализа. Программы- снифферы имеют встроенный язык запросов для отбора части перехваченных сообщений по формальным признакам. Студент Пётр изучает сетевые технологии. IP-адрес компьютера Петра 192.168.0.1. Пётр на своем компьютере запустил FTP-сервер в пассивном режиме и Web-сервер на стандартных портах (21 TCP и 80 TCP соответственно), к которым подключились другие студенты его группы. Пётр запустил на своем компьютере несколько Web-браузеров и FTP-клиентов и установил соединение с несколькими внешними Web и FTP-серверами, работающими по стандартным портам TCP. Кроме этого Пётр запустил на своем компьютере SSH-клиент и подключился к SSH-серверу, который настроен на работу по порту 80 TCP. Для анализа трафика Пётр использует программу-сниффер Wireshark. Пётр осуществлял перехват трафика в течение 10 минут и решил провести анализ трафика. Для фильтрации трафика Пётр решил использовать только следующие условия: http - отбирает все сообщения, содержащие данные и (или) команды протокола HTTP ftp - отбирает все сообщения, содержащие данные и (или) команды протокола FTP ssh - отбирает все сообщения, содержащие данные и (или) команды протокола SSH ip.addr - отбирает все сообщения, содержащие IP пакеты, отправленные с подходящего по условию адреса или на него ip.src - (от англ. source - источник) отбирает все сообщения, содержащие IP пакеты, отправленные с подходящего по условию адреса ip.dst - (от англ. destination - адресат) отбирает все сообщения, содержащие IP пакеты, отправленные на подходящий по условию адрес tcp.port - отбирает все сообщения, содержащие TCP сегменты, отправленные с подходящего по условию порта TCP или на него tcp.srcport - отбирает все сообщения, содержащие TCP сегменты, отправленные с подходящего по условию порта TCP tcp.dstport - отбирает все сообщения, содержащие TCP сегменты, отправленные на подходящий по условию порт TCP Доступны логические операторы и операторы сравнения: && - И || - ИЛИ == - равно != - НЕ равно () - скобки для управления порядком вычисления условия ! – логическое НЕ (например выражение !http – отбирает все пакеты кроме содержащих данные и (или) команды протокола HTTP) > - больше < - меньше >= - больше или равно <= - меньше или равно Выберите все выражения-фильтры в программе Wireshark, которые позволят Петру отобрать среди всего перехваченного трафика только сообщения Web-клиентов и FTP-клиентов (от них и к ним), запущенных на его компьютере. Работа по протоколам HTTP и FTP напрямую, без серверов посредников (proxy). Никакие другие программы, кроме указанных, не передают данные по TCPIP. Для доступа к ответам нажмите «Ответить». 1. http && ftp 2. http && ((ip.src==192.168.0.1 && tcp.dstport==80) || (ip.dst==192.168.0.1 && tcp.srcport==80)) || ftp && ((ip.src==192.168.0.1 && tcp.dstport==21) || (ip.dst==192.168.0.1 && tcp.srcport==21)) 3. (http || ftp) && ip.addr==192.168.0.1 4. (ip.src==192.168.0.1 && tcp.dstport==80) || (ip.dst==192.168.0.1 && tcp.srcport==80) || (ip.src==192.168.0.1 && tcp.dstport==21) || (ip.dst==192.168.0.1 && tcp.srcport==21) 5. http && ip.addr=192.168.0.1 && tcp.port=80 || ftp && ip.addr=192.168.0.1 && tcp.port=21 6. (http || ftp ) && ((ip.src==192.168.0.1 && tcp.srcport>1024 || ip.dst==192.168.0.1 && tcp.dstport>1024)) 7. (http || ftp ) && (ip.addr==192.168.0.1 && (tcp.srcport>1024 || tcp.dstport>1024)) 8. (http || ftp) && tcp.port>1024 Ответ: 2, 6 6. Операционные системы (4 балла) [Round Robin] В вычислительных системах с одним центральным процессором в каждый момент времени центральный процессор может осуществлять вычисления только одного из процессов. Многозадачные операционные системы, поддерживающие одновременно несколько процессов, разделяют ресурс центрального процессора между процессами, поочередно предоставляя каждому из процессов определенное время использования центрального процессора, тем самым реализуя
  • 9. 9 «псевдопараллельное» выполнение этих процессов. Правило, по которому ресурс распределяет время между несколькими потребителями, называется дисциплиной обслуживания. Одной из распространенных дисциплин обслуживания для управления ресурсом центрального процессора в операционных системах является круговая очередь (Round Robin). Каждому процессу, находящемуся в этой очереди, присвоен порядковый номер. Операционная система сначала дает процессу с минимальным номером использовать центральный процессор в течение заданного периода времени, называемого квантом непрерывного выполнения. По истечении этого кванта, операционная система предоставляет такой же по продолжительности квант непрерывного выполнения процессу со следующим по возрастанию номером. Если закончился квант непрерывного выполнения процесса с максимальным номером из этой очереди, следующий квант предоставляется опять процессу с минимальным номером и так далее. Если процесс завершил вычисления, он выбывает из очереди. При этом если он не использовал полностью последний квант непрерывного выполнения, операционная система не дожидается окончания кванта и предоставляет новый квант непрерывного выполнения следующему по круговой очереди процессу. Продолжительность кванта непрерывного выполнения и продолжительность вычислений на центральном процессоре, необходимую каждому процессу, можно измерять в условных единицах – тактах. Например, если процессу P0 нужно до завершения периода вычислений 12 тактов, а квант непрерывного выполнения составляет 5 тактов, то в общей сложности квант непрерывного выполнения должен быть предоставлен такому процессу 3 раза, причем в последний раз он завершит вычисления до окончания выделенного кванта. Для передачи кванта непрерывного выполнения следующему процессу операционная система должна выполнить ряд служебных операций, затрачивая на них фиксированное количество тактов. Это количество тактов одинаково при любой операции передачи кванта непрерывного исполнения другому процессу, в том числе, если предыдущий процесс завершился, не использовав полностью свой квант непрерывного выполнения. Если передача кванта непрерывного выполнения происходит тому же процессу, который перед этим выполнялся, поскольку в очереди не осталось других процессов, операционная система не затрачивает на такую передачу дополнительных тактов и очередной квант непрерывного выполнения этого процесса начинается сразу же после окончания предыдущего. Для оценки производительности часто используется показатель среднее время выполнения процессов. Для каждого процесса определяется полное время выполнения процесса – время от его появления в очереди до завершения его вычисления в последнем предоставленном ему кванте непрерывного выполнения. Это время включает в себя как такты, на протяжении которых он вычислялся на центральном процессоре, так и такты, которые он ожидал своей очереди на вычисление. Времена полного выполнения всех процессов суммируются и делятся на количество процессов. В результате получается среднее время выполнения процессов. Этот показатель зависит от выбранной продолжительности кванта непрерывного выполнения. Задача. В начальный момент времени очередь образовали одновременно появившиеся три процесса, которым присвоены номера P0, P1 и P2. При этом процессу P0 требуется до завершения периода вычислений 59 тактов, процессу P1 – 29 тактов, а процессу P2 – 11 тактов. Время, необходимое операционной системе на передачу кванта непрерывного выполнения очередному процессу составляет 2 такта. В начальный момент времени операционная система сразу же предоставляет квант непрерывного выполнения процессу P0, не затрачивая дополнительных тактов на передачу кванта непрерывного выполнения. Определите, при какой продолжительности кванта непрерывного выполнения, среднее время выполнения этих процессов окажется минимальным. В ответе укажите целое число – количество тактов в этом кванте непрерывного выполнения. Ответ: 15 7. Технологии программирования (3 балла) Вы работаете бухгалтером в некоторой компании. В компании работает n человек. Про каждого человека известно, какую зарплату он получает. Также, иногда, компания выдаёт каждому сотруднику премию. Размер премии может варьироваться, но всем сотрудникам выдаётся премия одинакового размера. Кроме того, иногда нужно составлять финансовый отчёт, в котором нужно сравнить суммы, получаемые каждым сотрудником в качестве зарплат и в качестве премий. Более конкретно, могут происходить следующие ситуации:  Каждый работник получает свою зарплату ai.  Каждый работник получает премию b. b может быть различным для разных выдач премии.  Для отчёта, нужно сказать, сколько работников на данный момент получили больше премиями, чем зарплатой. Формат входного файла В первой строке входного файла input.txt находится целое число n (1 ≤ n ≤ 500) — число работников компании. В следующей строке заданы n целых чисел ai (1 ≤ ai ≤ 500) — зарплаты работников. В третьей строке задано число запросов t (1 ≤ t ≤ 500). Далее, в t строках идут сами запросы. Запросы бывают трёх видов: 9. «1» — выдать каждому работнику зарплату. «2 b» (1 ≤ b ≤ 500) — выдать каждому работнику премию b. «3» — узнать, сколько работников получили больше премиями, чем зарплатами. Формат выходного файла Выведите в собственной строке ответ на каждый запрос типа «3». Пример входных и выходных данных input.txt output.txt 3 10 20 30 5 1 3
  • 10. 10 1 2 20 3 2 20 3 8. Технологии программирования (6 баллов) Вы — директор завода по производству кваса. Ваш завод произвёл n литров кваса, который теперь нужно разлить по бутылкам. У вас есть достаточно большое количество бутылок трёх различных объёмов: a, b и c литров. Вам не хочется терять ни литра драгоценного продукта, поэтому, все n литров должны быть разлиты по бутылкам. Также, вы хотите использовать как можно меньшее число бутылок. Определите, сколько бутылок каждого типа нужно наполнить. Формат входного файла В первой строке входного файла input.txt находится целое число n (1 ≤ n ≤ 500) — имеющееся число литров кваса. В следующей строке заданы целые числа a, b и c (1 ≤ a, b, c ≤ 500) — объёмы бутылок первого, второго и третьего вида, соответственно. Формат выходного файла В первой строке выходного файла output.txt требуется вывести «YES», если можно разлить все n литров по бутылкам заданного объёма, и «NO, если это сделать нельзя. В случае, если в первой строке выведено «YES», во второй строке должно содержаться три числа: сколько бутылок первого, второго и третьего вида, соответственно, нужно наполнить. Сумма выведенных чисел должна быть минимальна среди всех возможных ответов. В случае, если ответов с минимальным суммарным количеством бутылок несколько, выведите любой из них. Пример входных и выходных данных input.txt output.txt 9 2 4 6 NO 14 3 6 2 YES 0 2 1