Информатика

7 592 задачивместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.

Вам дана экосистема, в состоянии которой происходят циклические изменения. Она обладает следующими параметрами:

  • O — кислород в конце итерации.
  • A — количество водорослей типа A в конце итерации.
  • B — количество водорослей типа B в конце итерации.
  • U — количество улиток в конце итерации.
  • K — количество креветок в конце итерации.

После каждой итерации мы записываем новое состояние системы. Состояние системы на каждой итерации меняется по следующим правилам (именно в таком порядке):

1) Водоросли добавляют кислород:

  • если O ≤ 25, то \( O_{tmp} = O + 4 \cdot A + 7 \cdot B \);
  • если O > 25, то \( O_{tmp} = O + 4 \cdot A \) (водоросли B «не работают»).

\( O_{tmp} \) — это сколько кислорода получилось после работы водорослей на данной итерации, до того как улитки и креветки начали дышать.

2) Улитки и креветки тратят кислород:

\( O_{after} = O_{tmp} - 3 \cdot U - 1 \cdot K \).

\( O_{after} \) — это сколько кислорода осталось в конце итерации после дыхания животных (то есть после того, как улитки и креветки потратили кислород).

3) Проверка условий:

  • Если \( O_{after} < 8 \) — креветки погибают, и экосистема не может дальше функционировать.
  • Если \( O_{after} > 40 \) — экосистема перенасыщается и не может дальше функционировать.

4) Выбираем ровно одно действие \( d_i \):

  • \( d_i = 0 \) — ничего не делать;
  • \( d_i = 1 \) — посадить 1 водоросль A (A увеличится на 1);
  • \( d_i = 2 \) — посадить 1 водоросль B (B увеличится на 1);
  • \( d_i = 3 \) — убрать 1 улитку (можно только если улиток было хотя бы 1).

В конце итерации получаем следующие значения:

  • \( O_i = O_{after} \)
  • \( K_i = K \)
  • \( A_i = A + 1 \) (если \( d_i = 1 \), иначе A)
  • \( B_i = B + 1 \) (если \( d_i = 2 \), иначе B)
  • \( U_i = U - 1 \) (если \( d_i = 3 \), иначе U)

Вам нужно выбрать действия на каждой итерации. Выбирайте действия так, чтобы экосистема прожила максимальное количество итераций. Итерация i считается прожитой, даже если после проверки условий на этой итерации экосистема перестаёт функционировать. В ответ запишите максимальное количество итераций, которое сможет прожить экосистема.

Стартовые данные: \( O_0 = 31,\ A_0 = 3,\ B_0 = 0,\ U_0 = 7,\ K_0 = 6 \).

В ИТМО запустили внутренний сервис «ПропускИТМО» — через него подают заявки на разовый вход: гости на хакатон, ассистенты на семинар, подрядчики, доставщики и т. п.

Все эти заявки стекаются на пост охраны конкретного корпуса. На посту стоит старенький принтер, который подключён к локальной системе и печатает не по одной заявке, а пакетами, чтобы охранник мог сразу выдать несколько пропусков и отметить людей в журнале. Пакет — это накопленная очередь заявок, которую принтер печатает одним разом (максимум 6 заявок). Очистить пакет — означает удалить из него все заявки, то есть сделать пакет пустым.

На пост охраны корпуса ИТМО за одну смену пришли 24 заявки на печать разовых пропусков в таком порядке:

1. Петров2. Сорокин3. Иванченко4. Егорова
5. Орлова6. Галка7. Василенко8. Панюкова
9. Овсянников10. Ерёмин11. Овчинников12. Губанов
13. Юдина14. Хачатуров15. Каймакова16. Лебедев
17. Миронов18. Фролов19. Демидов20. Романенко
21. Тихонов22. Чистяков23. Бутова24. Назаров

Правила печати:

  • Принтер печатает пакетами максимум по 6 заявок.
  • Заявки обрабатываются поочерёдно (сверху вниз).
  • Множество сигнальных букв: {Е, О, Г}.
  • Если в текущем пакете в какой-то момент встречаются 3 подряд идущие фамилии, которые начинаются на буквы из описанного множества сигнальных букв (например, подряд шли фамилии, начинающиеся на Е, О и Е соответственно), то принтер печатает накопленный пакет сразу, не дожидаясь накопления 6 заявок, после чего очищает его.
  • Если таких фамилий не было, но заявок уже 6, то печатаем пакет и очищаем его.
  • Когда все 24 заявки обработаны и остаются ненапечатанные заявки в пакете, пакет печатается, после чего обработка списка завершается.

В ответ укажите одно число — сколько пакетов было напечатано за смену.

Имеется поле 10×10. У каждой клетки есть координата (x, y), где x — номер строки на поле, y — номер столбца на поле. Левая верхняя клетка имеет координаты (1, 1).

Изначально в клетке с координатами (3, 7) находятся 120 шаров. Но есть нюанс: в каждой клетке может находиться максимум один шар, поэтому запускается алгоритм балансировки шаров.

Данный алгоритм выглядит следующим образом:

  • Рассматриваем клетки в любом порядке. Если в текущей клетке шаров больше, чем 1, то мы начинаем избавляться от лишних шаров по очереди. Причём действует правило: пока шар не нашёл пустую клетку или не удалился, другие шары не могут начинать перемещение.
  • За один шаг шар может переместиться в любую из 4-х соседних по ребру клеток. Если на поле есть пустая клетка, шар будет стремиться в неё попасть.
  • Шар может временно встать в клетку, где уже есть шары, чтобы продолжить дальше свой путь, но никакой шар, покинувший стартовую клетку, не может снова на неё вступить.
  • Если на очередном шаге шар нашёл пустую клетку — он остаётся там (шар нашёл свою клетку). Клетка считается пустой, если в ней нет ни одного шара.
  • Если у шара нет возможности найти пустую клетку, то он доходит до любой угловой клетки (исходные угловые клетки и любые другие угловые клетки) и удаляется вместе с ней. Это значит, что данная угловая клетка навсегда пропадает с поля, и шары, которые были в ней, соответственно тоже пропадают. Угловой считается клетка, у которой две смежные стороны не граничат с другими клетками.

Алгоритм балансировки заканчивается, когда на поле не будет ни одной клетки, в которой находится больше 1 шара.

Определите, сколько шаров на поле останется после выполнения алгоритма балансировки.

Дана строка ABCCCABBBC. Над ней выполняется следующий алгоритм:

  • Если в строке чётное число букв А, то в конец строки добавляется символ А.
  • Если в строке нечётное число букв А, то в конец строки добавляется символ, которого меньше всего в строке на данный момент. Например, для строки АААВВС будет добавлен символ С, получится строка АААВВСС. Если символов, которых в строке меньше всего, несколько (их количества совпадают), тогда в конец строки дописывается символ, идущий в алфавите раньше. Например, для строки AAABBCC будет добавлен символ В, так как он идёт в алфавите раньше С — в результате получится строка AAABBCCB.

Алгоритм продолжает свою работу до тех пор, пока в строке не окажется ровно 6078 символов, после чего сразу завершит работу.

Сколько букв А будет в строке после завершения работы алгоритма? В ответ запишите одно целое число — количество букв А в результирующей строке.

В течение семестра первокурсник может находиться в одном из состояний:

  • 0 — «всё хорошо»
  • 1 — «всё нормально»
  • 2 — «я отчисляюсь»
  • 3 — «ладно, передумал»
  • 4 — «семестр закрыт»

На состояние влияют события в его жизни. События бывают двух типов:

  • A — «контрольная / экзамен»
  • B — «сон / культурные мероприятия»

Как меняется состояние, задаётся таблицей ниже.

Текущее состояниеСостояние, которое наступит, если случится событие AСостояние, которое наступит, если случится событие B
010
112
230
324
444

Состояние 4 означает, что семестр закрыт. После этого состояние не меняется, вне зависимости от происходящих событий.

Пример, как пользоваться таблицей:

  • Если студент был в состоянии 0 и случилось событие A, то по таблице он перейдёт в состояние 1.
  • Если студент был в состоянии 1 и случилось событие B, то по таблице он перейдёт в состояние 2.

Изначально, при поступлении в ВУЗ, студент находится в состоянии 0.

Вам дана последовательность событий, происходивших в жизни студента:

ABBABAABABBABAABABBABAABABBABAABABBABAABABBABAABABBABAABABBABAAB

Вам нужно записать в ответ два числа через пробел:

  • Конечное состояние студента после обработки всей последовательности;
  • Сколько раз студент оказывался в состоянии 2 (после очередного события из последовательности).

Настя работает с детьми в кружке МОТИ и учит их архитектуре компьютера. Она объясняет кэш как «быстрый шкафчик», куда заглядывает процессор, когда ему нужно что-то взять.

Есть 5 терминов, которые описывают работу «шкафчика»:

  • Ситуация, когда процессору что-то потребовалось, и это что-то оказалось в шкафчике, называется hit (попадание).
  • Время, которое тратится на обращение к шкафчику при попадании (hit), называется hit time (время попадания) и измеряется в наносекундах.
  • Ситуация, когда процессору понадобились данные, но в шкафчике их не оказалось, называется miss (промах) — тогда приходится идти на склад.
  • Вероятность того, что при обращении к шкафчику произойдёт промах, называется miss rate (доля промахов) и выражается в процентах.
  • Время, которое дополнительно тратится при промахе на поход на склад, называется miss penalty (штраф промаха) и измеряется в наносекундах.

На сегодняшнем занятии Настя говорит: «Представим, что процессор делает 100 обращений к памяти. Каждый раз он сначала заглядывает в шкафчик и тратит hit time. Если происходит промах, то в дополнение к этому времени он тратит ещё и miss penalty на поход на склад. Среднее время доступа к памяти — это общее время, потраченное на все обращения, делённое на их количество.»

После этого Настя показывает детям несколько разных шкафчиков с разными характеристиками:

Шкафчикhit time (ns)miss ratemiss penalty (ns)
A15%50
B22%60
C110%30
D0.58%40
E31%80

Задание:

  • Для каждого шкафчика найдите среднее время доступа к памяти.
  • Определите, какой шкафчик самый быстрый в среднем.
  • Укажите его среднее время доступа к памяти.

Формат ответа: буква самого быстрого шкафчика и его среднее время доступа к памяти, записанные слитно, без пробелов. Среднее время указывается в наносекундах (ns), десятичная дробь записывается через точку (например, 1.5). Округлять до одного знака после запятой. Пример записи ответа: «A1.1».

Используя поиск информации в глобальной сети Интернет, определите, что является ключевым отличием наиболее распространённой модифицированной Гарвардской архитектуры, используемой во многих современных процессорах (например, в ядрах ARM), от её «чистой» формы.

  1. Память для инструкций и память для данных физически и логически полностью разделены.
  2. Наличие на уровне процессора раздельных, независимых кэшей для инструкций и данных, которые работают с единым адресным пространством основной оперативной памяти (ОЗУ).
  3. Использование только одного канала для обмена с памятью, как в архитектуре фон Неймана.
  4. Отказ от принципа хранимой программы (принципа фон Неймана), согласно которому команды и данные хранятся в одной и той же памяти и обрабатываются процессором одинаково.

В ответ запишите номер правильного варианта.

Татьяна Олеговна делает брелоки из бисера. Брелоки представляют собой нить, на которую нанизаны 12 бусин. Татьяна использует только белые, серые и чёрные бусины. С одной стороны этой нити расположено крепление для ключей. Раньше Татьяна записывала схемы брелоков с помощью последовательностей нулей, единиц и двоек, где «0» означал белую бусину, «1» — чёрную, а «2» — серую. Крепление для ключей всегда предполагается в левой части схемы.

Пример схемы брелока, состоящего из 10 чёрных бусин и 2 белых, в котором часть брелока, ближайшая к креплению, чёрная, а вторая часть — белая: 111111111100 — итого запись содержит 12 символов, по одному на каждую бусину.

Но вот однажды Татьяна придумала, как можно сократить запись: вместо того, чтобы записывать подряд 10 «1», она решила записывать число бусин одного цвета, которые идут подряд (например, 10), ставить дефис «-», после чего записывать цвет бусинки («1» — чёрный, «0» — белый, «2» — серый). Между такими блоками ставится запятая. Подряд не может записываться два блока, описывающих бусины одного и того же цвета, — они должны быть объединены в один блок. В блоке не может быть 0 или отрицательное число бусин. Таким образом, запись схемы брелока из примера выше сокращается до 10-1,2-0 — итого 8 символов, что на 4 символа меньше исходной записи.

Однако выяснилось, что в некоторых случаях новая запись становится даже длиннее, чем исходная, например брелок из чередующихся белых и чёрных бусин. Исходная форма записи: 010101010101 — 12 символов. Новая форма записи: 1-0,1-1,1-0,1-1,1-0,1-1,1-0,1-1,1-0,1-1,1-0,1-1 — 47 символов.

Сколько существует различных брелоков длины 12, схемы которых в новой и исходной формах записи содержат по одинаковому количеству символов? Брелоки считаются различными, если отличаются хотя бы одной бусиной. В ответ запишите одно число — количество брелоков.

Склад 7×7: стоят 7 стеллажей в ряд, у каждого стеллажа 7 полок по высоте. На каждой полке изначально лежит от 0 до 3 ящиков. Стеллажи нумеруются начиная с 1. Робот начинает со стеллажа 1 и двигается по столбцам слева направо. Приехав к очередному стеллажу, он проходит полки сверху вниз и для каждой полки пытается увеличить число ящиков на 1: если на полке меньше 5, добавляет один; если уже 5, пропускает и идёт дальше. Максимальная вместимость каждой полки — 5 ящиков.

Если в текущем стеллаже в какой-то момент оказалось 3 полки со значением 5, робот убирает все ящики с этого стеллажа (обнуляет его). После завершения визита робот едет к следующему стеллажу; когда робот прошёл все стеллажи слева направо, он возвращается к первому и продолжает руководствоваться теми же правилами, пока не израсходует заданное число ходов. Ход — это один визит к одному стеллажу (полная обработка стеллажа сверху вниз).

Изначальная конфигурация полок дана ниже (строки — полки сверху вниз, столбцы — стеллажи слева направо):

3132320
1333131
0310213
3003000
2321323
3203032
0030300

Всего робот делает 14 ходов, после чего останавливается. В ответ укажите одно число: сколько раз за эти 14 ходов произойдёт обнуление какого-либо стеллажа.

Внутри кампуса ИТМО настроили систему доставки между разными корпусами; для сокращения их решили обозначать цифрами, начиная с единицы. Корпуса соединены односторонними дорогами, по данным дорогам можно двигаться лишь в одном направлении. По этим дорогам ездит один курьер-робот. Им по очереди управляют два игрока: сначала 1 ход делает Света, потом 1 ход делает Богдан, потом снова Света и т. д. В начале игры робот стоит в корпусе 1.

За один ход игрок обязан выбрать одну из исходящих из текущего корпуса дорог и перевезти робота по ней в следующий корпус. Важный момент: т. к. при создании системы старались сэкономить деньги, у робота оказались плохие колёса, из-за этого после того, как он проезжает по выбранной дороге, она становится непригодной для дальнейшей эксплуатации и больше никогда не может быть использована.

Если в свой ход игрок не может выбрать ни одной дороги (из текущего корпуса нет неиспорченных исходящих дорог), то этот игрок проигрывает.

Схема соединения корпусов дорогами:

(тут должно быть изображение)

Считайте, что оба игрока хотят победить и прикладывают все свои силы для этого. Света и Богдан играют честно и изначально знают схему соединения корпусов и дорог полностью.

Кто из игроков может победить в этой игре независимо от ходов противника, и какое максимальное количество его ходов ему может на это потребоваться? В ответ запишите через пробел два числа: сначала номер игрока (Света — 1, Богдан — 2, если невозможно сказать — 0), а затем максимальное количество ходов, которое может потребоваться этому игроку для победы.

Кот Матроскин ждёт невероятно важное сообщение от своих родственников из Котинска. Но так как его родственники очень тревожные и боятся, что сообщение будет перехвачено, они его закодировали.

Кодирование, которое использовали коты, основано на том, что если какая-то подстрока уже встречалась ранее в строке, то на неё можно сослаться, указав, на сколько нужно сместиться относительно текущего элемента, чтобы попасть на первый символ нужной нам подстроки, и размер подстроки. Закодированное сообщение представляет из себя строку, в которой последовательно идут тройки элементов:

  • первый элемент тройки — цифра, на которую нужно сместиться влево в раскодированной части исходной строки, чтобы получить первый символ повторяющейся ранее подстроки;
  • второй элемент тройки — цифра, сколько символов нужно забрать (размер подстроки);
  • третий элемент — буква, которая будет стоять за скопированной подстрокой.

Пример: закодированная строка 00a00b00c33d. Исходная строка будет строиться следующим образом:

  • Изначально у нас пустая строка «».
  • 00a: смещаемся на 0 символов влево и копируем подстроку длиной 0, после неё ставим символ a. Получилась строка «a».
  • 00b: получилась строка «ab».
  • 00c: получилась строка «abc».
  • 33d: смещаемся на 3 символа влево и копируем подстроку длиной 3, после неё ставим символ d. Получилась строка «abcabcd».

«abcabcd» — раскодированная строка.

Матроскин получил одно и то же закодированное сообщение от двух родственников, но проблема в том, что оба родственника допустили по одной ошибке в своих кодах. Кот уже выяснил, что оба родственника ошиблись в записи третьего элемента одной из троек (каждый в своей тройке). Помогите Матроскину восстановить сообщение.

Полученные сообщения от родственников из Котинска:

  • 00a00a00b00c31c11b73b00e00f00a
  • 00a11b00c41c00c51c73e00f00a

Примечание: подстрокой называется непрерывная последовательность символов исходной строки. Например, «a», «bc» — будут подстроками для строки «abc».

Оля решила узнать у бабушки рецепт её фирменного печенья. Бабушка очень любит информатику, поэтому дала внучке список ингредиентов, записанный с помощью 7 логических высказываний, и сказала, что одно из них ложно, а остальные истинны. Логические высказывания:

  • Если 33 в троичной системе записывается как 1010, то муки нужно использовать на 3 стакана больше, чем сахара.
  • Если мука и сахар используются в равных пропорциях, то растопленного сливочного масла нужно использовать в 4 раза меньше, чем использовалось муки.
  • Сахара нужно взять на 2 стакана меньше, чем муки.
  • Растопленного сливочного масла используется в 2 раза меньше, чем муки.
  • Муки используется в 2 раза больше, чем сахара.
  • Число стаканов сахара является минимальным числом в двоичной системе счисления, содержащим хотя бы одну единицу и хотя бы один ноль в значащих разрядах.
  • Если используется 2 стакана сахара, то существует ровно 1 система счисления, запись в которой количества стаканов муки будет начинаться с цифры 1.

Примечание: все ингредиенты отмеряются с помощью стакана, каждого ингредиента используется целое положительное количество стаканов.

Сколько стаканов муки нужно использовать, чтобы приготовить бабушкино фирменное печенье? В ответ запишите одно число — количество стаканов муки.

У Кота Матроскина проблема. У него есть следующее логическое выражение, зависящее от трёх переменных:

X₀(А, В, С) = (А И НЕ(В)) ИЛИ (А И НЕ(А) И НЕ(С)) ИЛИ (С И В И НЕ(А) И НЕ(С)) ИЛИ С

Над этим выражением ему нужно проделать следующий алгоритм. Первоначальное значение i = 1, и после каждого вычисления выражения значение i увеличивается на 1.

  1. Вычислить выражение Xᵢ, подставив Xᵢ₋₁ в данное выражение:
    Xᵢ(А, В, С) = (С И Xᵢ₋₁(А, В, 1)) ИЛИ (НЕ(С) И Xᵢ₋₁(А, В, 0))
  2. Повторить первый пункт 10 раз.
  3. Вычислить выражение Xᵢ, подставив Xᵢ₋₁ в данное выражение:
    Xᵢ(А, В, С) = (А И Xᵢ₋₁(1, В, С)) ИЛИ (НЕ(А) И Xᵢ₋₁(0, В, С))
  4. Повторить третий пункт 10 раз.
  5. Вычислить выражение Xᵢ, подставив Xᵢ₋₁ в данное выражение:
    Xᵢ(А, В, С) = (В И Xᵢ₋₁(А, 1, С)) ИЛИ (НЕ(В) И Xᵢ₋₁(А, 0, С))
  6. Повторить пятый пункт 10 раз.

Под слагаемым подразумевается переменная / переменная с отрицанием / константа или последовательность из переменных / переменных с отрицаниями / констант, соединённых операцией И. Примерами слагаемых являются: А И В И С — 1 слагаемое, А И НЕ(В) — 1 слагаемое. Пример: в выражении А ИЛИ В ИЛИ С — 3 слагаемых, (А И НЕ(В) И 1) ИЛИ (0 И А) — 2 слагаемых.

Важное примечание! Изначальную формулу X₀ изменять нельзя. Для каждого из пунктов вычисление происходит по следующим правилам (X, Y, Z — любые переменные или функции):

  • Раскрываем скобки по правилу: X И (Y ИЛИ Z) = (X И Y) ИЛИ (X И Z).
  • Исключаем слагаемые, следуя правилам, описанным ниже:
    • если внутри одного слагаемого есть 0, то это слагаемое исключаем;
    • если есть повторяющиеся слагаемые — оставляем только одно, остальные исключаем;
    • если в слагаемом одновременно встречаются X и НЕ(X) — слагаемое исключаем;
    • НЕ(1) = 0, НЕ(0) = 1;
    • 1 И X = X;
    • слагаемые можно менять местами, так же, как и порядок переменных в слагаемом;
    • делаем так, пока можно что-то исключить;
    • правила, не описанные в этом списке, применять строго запрещено!

Сколько слагаемых получится в итоговом выражении?

Даны два числа: \(A = (120x)_4\) и \(B = (130y)_5\), где x и y — неизвестные цифры в системах счисления с основаниями 4 и 5 соответственно. Известно, что для чисел A и B выполняются два условия:

  • \(A + B\) кратно \(7_{10}\);
  • \(|A - B|\) минимально при выполнении всех остальных условий задачи.

Найдите пару чисел A и B, удовлетворяющую условиям. В ответе укажите A и B, записанные в десятичной системе счисления через пробел (сперва A, потом B). Пример ответа: «33 149».

Наташа забыла свой пароль, состоящий из двух цифр. Она помнит, что:

  • Пароль состоит из двух десятичных цифр.
  • В восьмеричной системе пароль записывается ровно тремя символами (без ведущих нулей).
  • В шестнадцатеричной системе пароль записывается ровно двумя символами (без ведущих нулей).
  • Сумма десятичных цифр пароля равна 7.
  • Требуется наименьшее десятичное число, удовлетворяющее условиям.

Найдите значение пароля, ответ запишите в десятичной системе счисления.

В стопке лежат билеты для экзамена по дискретной математике в ИТМО. В стопке 7 билетов: три на «A», два на «B», два на «C». Буквы обозначают тип (тему) билета. Билеты одного типа между собой неразличимы. Студенты подходят по очереди, ассистент каждый раз выдаёт верхний билет из стопки.

Правило: если сейчас должны выдать билет, и у двух предыдущих студентов уже были выданы «A» и «A» (то есть подряд уже было две «A»), и сейчас сверху тоже лежит «A», то перед выдачей ассистент перемешивает верхние три билета в произвольном порядке и затем тут же выдаёт верхний из этих трёх, даже если это снова оказался «A» — повторной проверки и дополнительного перемешивания в тот же момент не происходит. Если условие не выполняется, ассистент просто выдаёт верхний билет.

Сколько различных последовательностей выдачи этих 7 билетов можно получить при таком правиле, если исходный порядок стопки любой, а при перемешивании ассистент может выбрать любой порядок верхних трёх?

В ответе укажите целое число.

Вы работаете в туристическом агентстве, и к вам обратился постоянный клиент с запросом на подбор маршрута. Вам нужно помочь ему выбрать оптимальный маршрут, учитывая его предпочтения, бюджет и возможные дополнительные затраты, связанные с использованием нашего агентства.

Данные о клиенте. Максимальный бюджет — 10 500 рублей. Предпочтения клиента — для выбора маршрута важны три ключевых критерия, из которых хотя бы два должны быть выполнены: красивые виды, хороший отель, экскурсии и развлечения. Дата, до которой клиент хочет улететь — 01.07.2026 (это крайний срок, до которого клиент готов ждать рейс, рейсы позже он не будет рассматривать ни при каких обстоятельствах). Желаемой даты нет: учитывается «сегодняшняя дата» и крайний срок.

Дополнительные затраты. Если клиент решит подождать более поздний рейс (но до 01.07.2026), ему нужно будет заплатить дополнительную сумму за каждый день использования нашего агентства (800 рублей за день).

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

Ваш босс поставил задачу получить максимальную выручку для агентства. Иногда может быть выгодно заставить клиента подождать рейс, чтобы выбрать более прибыльный маршрут. Выручкой считать все деньги, которые клиент выплатит агентству: стоимость маршрута + при необходимости плата за дни использования агентства во время ожидания рейса. Количество дней использования агентства = max(0; Дата начала рейса − Сегодняшняя дата).

За «сегодняшнюю дату» при расчётах брать 18.06.2026. В ответе укажите два числа через пробел: номер выбранного маршрута и общую выручку, которую агентство получит от этого маршрута.

Стоимость маршрутаВремя в пути, чДата начала рейсаТип маршрутаКрасивые видыХороший отельЭкскурсии
15 095 ₽1025.06.2026Экскурсия по МосквеДаНетДа
27 476 ₽525.06.2026Шоппинг-тур в Санкт-ПетербургДаНетНет
311 776 ₽1025.06.2026Исторические местаНетДаДа
44 015 ₽821.06.2026Шоппинг-тур в Санкт-ПетербургНетДаДа
55 689 ₽821.06.2026ГастротурНетНетДа
63 553 ₽917.06.2026Термальные источникиДаДаДа
74 756 ₽222.06.2026Шоппинг-тур в Санкт-ПетербургДаДаДа
811 928 ₽1001.07.2026Горы и озёра (Карелия)ДаНетДа
94 040 ₽226.06.2026Природные заповедникиДаДаДа
105 145 ₽1020.06.2026Шоппинг-тур в Санкт-ПетербургДаДаДа
1111 323 ₽1023.06.2026Активный отдых (рафтинг)НетНетНет
126 183 ₽320.06.2026Золотое кольцоДаДаНет
136 114 ₽504.07.2026Экскурсия по МосквеНетНетНет
148 521 ₽918.06.2026Исторические местаНетДаДа
158 024 ₽1123.06.2026Экскурсия по МосквеДаДаДа
166 783 ₽1205.07.2026Культурный уикендДаНетНет
174 694 ₽702.07.2026Активный отдых (рафтинг)ДаДаДа
1811 317 ₽1028.06.2026Золотое кольцоДаДаНет
195 932 ₽227.06.2026Термальные источникиНетДаДа
205 703 ₽1018.06.2026Исторические местаДаДаДа
217 203 ₽1227.06.2026Горы и озёра (Карелия)ДаНетДа
2211 981 ₽619.06.2026Природные заповедникиНетНетДа
236 276 ₽1020.06.2026Активный отдых (рафтинг)ДаДаНет
245 453 ₽717.06.2026Пляжный отдых (Сочи)ДаНетДа

В столовой ИТМО стоит 2 PlayStation. Начинается борьба за PlayStation, но студенты ИТМО — приличные люди, поэтому они соблюдают правила очереди. Каждый раз, когда студент или пара друзей решают поиграть на одной из консолей, они создают заявку в ИСУ (электронная система университета), становясь частью очереди на использование PlayStation. Заявка содержит следующую информацию:

  1. имя студента (или пары студентов);
  2. время прихода (целое, номер минуты);
  3. длительность игры первого игрока (минуты);
  4. длительность игры второго игрока (минуты).

(Если один закончил раньше, второй продолжает играть один; консоль освобождается, когда закончит последний.)

Правила очереди:

  • Когда PlayStation освобождается, система ИСУ автоматически выбирает следующую заявку из очереди ожидания, и доступ к PlayStation получают создатели этой заявки.
  • Выбирается заявка с минимальным временем прихода (пришла раньше).
  • Если время прихода одинаково, выбирается та, что раньше во входных данных.
  • Если в момент освобождения никто не ждёт, консоль простаивает до следующего прихода.
  • Если одновременно свободны несколько PlayStation, заявки распределяются по консолям в порядке их номеров (1, 2, …).

В один день в столовой ИТМО было подано 8 заявок на использование PlayStation. Отсчёт времени начинается с 0 в момент запуска электронной системы для создания заявок и идёт в минутах; первая заявка пришла спустя 1 минуту после запуска. Время ожидания заявки — это период, прошедший с момента подачи заявки, но до того, как её инициаторы начали играть на PlayStation. Общее время ожидания — это сумма времени ожидания всех заявок.

Вам дана таблица заявок студентов:

КтоВремя прихода (мин)Время игры первого игрока (мин)Время игры второго игрока (мин)
Антон24
Коля+Миша136
Маша32
Гриша25
Ильяс12
Света+Саша341
Андрей21
Богдан14

Вам нужно вывести два числа через пробел:

  1. Общее время ожидания всех заявок.
  2. Номер минуты, когда освободилась последняя PlayStation, после завершения последней заявки.

Пример записи ответа: «12 34».

Дана блок-схема алгоритма:

(тут должно быть изображение)

Известно, что на вход алгоритма подаются целые положительные x, но не гарантировано, что алгоритм завершит свою работу для любых x. Какое наименьшее x нужно подать на вход, чтобы алгоритм завершил свою работу и на выходе было получено число 2026?

Примечание: a mod b — остаток от деления a на b; a div b — целочисленное деление a на b.

Поделиться
Класснуть