Вариант 1 ЕГЭ по информатике

27 заданий по образцу ФИПИ. Впишите ответы и нажмите «Проверить вариант» — баллы посчитаются сразу.

К проверкеВариант 2
11 балл
В таблице содержатся сведения о дорогах между населёнными пунктами (звёздочка означает, что дорога между соответствующими городами есть).
На рисунке справа та же схема дорог изображена в виде графа.
Рисунок к заданию 1
Так как таблицу и схему рисовали независимо друг от друга, то нумерация населённых пунктов в таблице никак не связана с буквенными обозначениями на графе. Определите номера населённых пунктов Е и В в таблице. В ответе напишите два числа без разделителей: сначала для пункта Е, затем для пункта В.
Показать ответ
21
21 балл
Логическая функция F задаётся выражением (¬a ∧ ¬b) ∨ (b ≡ c) ∨ d . На рисунке приведён частично заполненный фрагмент таблицы истинности функции F , содержащий неповторяющиеся строки. Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных a, b, c, d .

????F
10
1010
00110


В ответе напишите буквы a, b, c, d в том порядке, в котором идут соответствующие им столбцы. Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.
Показать ответ
cdba
31 балл
В файле приведён фрагмент базы данных «Кондитерские изделия» о поставках конфет и печенья в магазины районов города.

База данных состоит из трёх таблиц.

Таблица «Движение товаров» содержит записи о поставках товаров в магазины в течение первой половины июня 2022 г., а также информацию о проданных товарах. Поле Тип операции содержит значение Поступление или Продажа, а в соответствующее поле Количество упаковок, шт. внесена информация о том, сколько упаковок товара поступило в магазин или было продано в течение дня. Заголовок таблицы имеет следующий вид.
ID операцииДатаID магазинаАртикулКоличество упаковок, шт.Тип операции


Таблица «Товар» содержит информацию об основных характеристиках каждого товара. Заголовок таблицы имеет следующий вид.
АртикулОтделНаименование товараЕд_измКоличество в упаковкеЦена за упаковку


Таблица «Магазин» содержит информацию о местонахождении магазинов. Заголовок таблицы имеет следующий вид.
ID магазинаРайонАдрес


На рисунке приведена схема указанной базы данных.
Рисунок к заданию 3
Используя информацию из приведённой базы данных, определите, на сколько увеличилось количество пряников тульских с начинкой, имеющихся в наличии в магазинах Заречного района, за период с 1 по 15 июня включительно. В ответе запишите только число.
3_4CD2A9.xlsx
Показать ответ
455
41 балл
По каналу связи передаются шифрованные сообщения, содержащие только десять букв: А, Б, Е, И, К, Л, Р, С, Т, У; для передачи используется неравномерный двоичный код. Для кодирования букв используются кодовые слова, представленные в таблице.

БукваКодовое словоБукваКодовое слово
А01Л1101
Б1100Р1000
ЕС000
И001Т101
К1111У1001


Укажите кратчайшее кодовое слово для буквы Е, при котором код будет удовлетворять условию Фано. Если таких кодов несколько, укажите код с наименьшим числовым значением.
Примечание. Условие Фано означает, что никакое кодовое слово не является началом другого кодового слова. Это обеспечивает возможность однозначной расшифровки закодированных сообщений.
Показать ответ
1110
51 балл
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. Строится двоичная запись числа N.
2. Далее эта запись обрабатывается по следующему правилу:
a) если число N делится на 3, то к этой записи дописываются три последние двоичные цифры;
б) если число N на 3 не делится, то остаток от деления умножается на 3, переводится в двоичную запись и дописывается в конец числа.
Полученная таким образом запись является двоичной записью искомого числа R.
3. Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа 1210 = 11002 результатом является число 11001002 = 10010, а для исходного числа 410 = 1002 это число 100112 = 1910.
Укажите максимальное число N, после обработки которого с помощью этого алгоритма получается число R, меньшее 130.
Показать ответ
31
61 балл
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует 5 команд: Поднять хвост, означающая переход к перемещению без рисования; Опустить хвост, означающая переход в режим рисования; Вперёд n (где n –  целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Назад n (где n –  целое число), вызывающая передвижение в противоположном голове направлении; Направо m (где m –  целое число), вызывающая изменение направления движения на m градусов по часовой стрелке, Налево m (где m –  целое число), вызывающая изменение направления движения на m градусов против часовой стрелки.

Запись Повтори k [Команда1 Команда2 … КомандаS] означает, что последовательность из S команд повторится k раз.

Черепахе был дан для исполнения следующий алгоритм:
Повтори 7 [Вперёд 12 Направо 90 Вперёд 20 Направо 90]
Поднять хвост
Вперёд 1 Направо 90 Вперёд 10 Налево 90
Опустить хвост
Повтори 7 [Вперёд 66 Направо 90 Вперёд 92 Направо 90]

Определите площадь пересечения фигур, ограниченных заданными алгоритмом линиями.
Показать ответ
110
71 балл
Виталий фотографирует интересные места и события с помощью своего смартфона. Каждая фотография представляет собой растровое изображение размером 2560×1024 пикселей, при этом используется палитра из 230 цветов. В конце дня Виталий отправляет снимки друзьям с помощью приложения-мессенджера. Для экономии трафика приложение оцифровывает снимки повторно, используя размер 640×1024 пикселей и глубину цвета 8 бит. Сколько Кбайт трафика экономится при передаче 120 фотографий? В ответе укажите целую часть полученного числа.
Показать ответ
1075200
81 балл
Некоторый алфавит содержит пять различных букв. Сколько четырёхбуквенных слов можно составить из букв данного алфавита (буквы в слове могут повторяться)?
Показать ответ
625
91 балл
Откройте файл электронной таблицы, содержащей в каждой строке семь натуральных чисел. Определите сумму всех чисел в строке таблицы с наименьшим номером, для чисел которой выполнены оба условия:

— в строке есть два числа, каждое из которых повторяется дважды, остальные три числа различны;
— максимальное число строки не повторяется.

В ответе запишите только число.
9_9832.xls
Показать ответ
261
101 балл
В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая - к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети.
Для узла с IP адресом 118.193.30.139 адрес сети равен 118.193.24.0. Чему равно значение третьего слева байта маски? Ответ запишите в виде десятичного числа.
Показать ответ
248
111 балл
На предприятии каждой изготовленной детали присваивают серийный номер, состоящий из 212 символов. В базе данных для хранения каждого серийного номера отведено одинаковое и минимально возможное целое число байт. При этом используется посимвольное кодирование серийных номеров, все символы кодируются одинаковым и минимально возможным числом бит. Известно, что для хранения 15 476 350 серийных номеров отведено не более 6 Гбайт памяти. Определите максимально возможную мощность алфавита, используемого для записи серийных номеров.
Показать ответ
32768
Подсказки (3)
  1. Сначала определите, сколько бит может приходиться на один символ, чтобы общий объём памяти не превысил ограничение.
  2. Если на символ приходится b бит, то один номер занимает ⌈212b8⌉ байт, а мощность алфавита равна 2b.
  3. Максимально допустимый размер одного номера — 416 байт. При b=15 требуется 398 байт, а при b=16 — 424 байта, поэтому берём 215.
Решение
1. Определим максимально допустимый размер одного серийного номера в байтах:
⌊6⋅23015 476 350⌋=416

2. Пусть один символ кодируется b битами. Тогда номер из 212 символов занимает:
⌈212b8⌉

3. Проверим возможное число бит на символ. При b=15 размер номера равен ⌈212⋅158⌉=398 байт, что допустимо. При b=16 размер равен ⌈212⋅168⌉=424 байта, что превышает ограничение.

4. Следовательно, максимально возможная мощность алфавита равна:
215=32768
Частые ошибки
  • Забывают округлить размер одного номера вверх до целого числа байт.
  • Используют 6 Гбайт как 6⋅109 байт вместо 6⋅230 байт.
  • Берут число бит на символ равным числу байт на символ.
121 балл
Исполнитель МТ представляет собой читающую и записывающую головку, которая может передвигаться вдоль бесконечной горизонтальной ленты, разделённой на равные ячейки. В каждой ячейке находится ровно один символ из алфавита исполнителя (множество символов A = {a0, a1, …, an–1} ), включая специальный пустой символ a0 .
Время работы исполнителя делится на дискретные такты (шаги). На каждом такте головка МТ находится в одном из множества допустимых состояний Q = {q0, q1, …, qn–1} . В начальный момент времени головка находится в начальном состоянии q0 .
На каждом такте головка обозревает одну ячейку ленты, называемую текущей ячейкой. За один такт головка исполнителя может переместиться в ячейку справа или слева от текущей, не меняя находящийся в ней символ, или заменить символ в текущей ячейке без сдвига в соседнюю ячейку. После каждого такта головка переходит в новое состояние или остаётся в прежнем состоянии.
Программа работы исполнителя МТ задаётся в табличном виде.

a0a1...
q0командакоманда...
q1командакоманда...
............


В первой строке перечислены все возможные символы в текущей ячейке ленты, в первом столбце – возможные состояния головки. На пересечении i-й строки и j-го столбца находится команда, которую выполняет МТ, когда головка обозревает j-й символ, находясь в i-м состоянии. Если пара «символ – состояние» невозможна, то клетка для команды остаётся пустой.
Каждая команда состоит из трёх элементов, разделённых запятыми: первый элемент – записываемый в текущую ячейку символ алфавита (может совпадать с тем, который там уже записан). Второй элемент – один из четырёх символов «L», «R», «N», «S». Символы «L» и «R» означают сдвиг в левую или правую ячейки соответственно, «N» – отсутствие сдвига, «S» – завершение работы исполнителя МТ после выполнения текущей команды. Сдвиг происходит после записи символа в текущую ячейку. Третий элемент – новое состояние головки после выполнения команды.
Например, команда 0, L, q3 выполняется следующим образом: в текущую ячейку записывается символ «0», затем головка сдвигается в соседнюю слева ячейку и переходит в состояние q3.

Выполните задание

На ленте исполнителя МТ в соседних ячейках записано двоичное представление целого положительного числа без ведущих нулей. Ячейки справа и слева от последовательности заполнены пустыми символами «λ». В начальный момент времени головка расположена в ближайшей справа от последовательности ячейке.
Алгоритм для Исполнителя:
Рисунок к заданию 12
После выполнения программы на ленте оказалось двоичная запись числа 156. Определите десятичное значение наибольшего числа, меньшего, чем 10000, которое могло быть записано на ленте до начала работы программы.
Показать ответ
8035
131 балл
Исполнитель преобразует число на экране.

У исполнителя есть две команды, которым присвоены номера:

1. Прибавить 1

2. Умножить на 2

Программа для исполнителя — это последовательность команд.

Сколько существует программ, для которых при исходном числе 2 результатом является число 32, и при этом траектория вычислений содержит число 12 и не содержит числа 15?

Траектория вычислений программы — это последовательность результатов выполнения всех команд программы.

Например, для программы 121 при исходном числе 7 траектория будет состоять из чисел 8, 16, 17.
Показать ответ
30
141 балл
Сколько единиц содержится в двоичной записи значения выражения:
48 + 28 – 8?
Показать ответ
6
Подсказки (3)
  1. Сначала вычислите значение выражения, затем представьте его в двоичной системе счисления.
  2. Используйте равенства 48=216 и 28=256.
  3. Получается 216+248=216+27+26+25+24+23, поэтому единиц в записи шесть.
Решение
1. Представим первую степень через степень двойки:
48=228=216

2. Вычислим значение выражения:
216+28−8=65536+256−8=65784

3. Разложим число по степеням двойки:
65784=216+27+26+25+24+23

4. В двоичной записи единицы стоят в шести разрядах.
1+1+1+1+1+1=6
Частые ошибки
  • Ошибочно считать количество цифр в двоичной записи вместо количества единиц.
  • Забыть, что 48=216.
  • Неверно выполнить вычитание 256−8.
151 балл
Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m»; пусть на числовой прямой дан отрезок B = [70; 90]. Для какого наибольшего натурального числа А логическое выражение
ДЕЛ(х, А) ∨ ((х ∈ В) → ¬ ДЕЛ(х, 16))
истинно (т.е. принимает значение 1) при любом целом положительном значении переменной х?
Показать ответ
80
161 балл
Алгоритм вычисления значения функции F(n), где n — целое неотрицательное число, задан следующими соотношениями:
F(n)=0 при n≤1;
F(n)=2×F(n−1)+2, если n>1 и при этом n нечётно;
F(n)=n2+F(n−1), если n>1 и при этом n чётно.
Чему равно значение функции F(30)?
Примечание. При вычислении значения F(n) используется операция целочисленного деления.
Показать ответ
98285
Подсказки (3)
  1. Последовательно вычисляйте значения функции от F(2) до F(30), учитывая чётность аргумента.
  2. Для нечётного n используйте F(n)=2×F(n−1)+2, а для чётного n — F(n)=n/2+F(n−1).
  3. В конце получаются значения F(28)=49134, F(29)=98270, поэтому F(30)=30/2+98270=98285.
Решение
1. Начальные значения: F(0)=0 и F(1)=0. Последовательно применяем заданные правила.

2. Для чётного аргумента 30 используется второе слагаемое n/2: F(30)=30/2+F(29).

3. Последние значения последовательности: F(27)=49120, F(28)=14+49120=49134, F(29)=2×49134+2=98270.

4. Подставляем значение F(29): F(30)=15+98270=98285.
F(30)=302+F(29)=15+98270=98285
Частые ошибки
  • Использование формулы для нечётного аргумента при вычислении F(30).
  • Забывают, что при чётном n используется целочисленное деление.
  • Пропускают добавление 2 в формуле для нечётного аргумента.
171 балл
В файле содержится последовательность целых чисел. Её элементы могут принимать целые значения от -100 000 до 100 000 включительно. Определите количество пар последовательности, в которых элементы не равны, а абсолютное значение их разности делится на минимальный положительный элемент последовательности, кратный 35. Гарантируется, что такой элемент последовательности есть. В ответе запишите количество найденных пар, затем максимальную из сумм элементов таких пар.
В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
17_23563.txt
Показать ответ
87 184328
181 балл
Задание выполняется с использованием прилагаемых файлов.
Квадрат разлинован на N × N клеток (1 < N < 30). Исполнитель Робот может перемещаться по клеткам, выполняя за одно перемещение одну из двух команд: вправо или вниз. По команде вправо Робот перемещается в соседнюю правую клетку, по команде вниз – в соседнюю нижнюю. Квадрат ограничен внешними стенами. Между соседними клетками квадрата также могут быть внутренние стены. Сквозь стену Робот пройти не может.
Перед каждым запуском Робота в каждой клетке квадрата лежит монета достоинством от 1 до 100. Посетив клетку, Робот забирает монету с собой; это также относится к начальной и конечной клеткам маршрута Робота.
Определите максимальную и минимальную денежные суммы, которые может собрать Робот, пройдя из левой верхней клетки в правую нижнюю. В ответе укажите два числа – сначала максимальную сумму, затем минимальную.
Исходные данные представляют собой электронную таблицу размером N × N, каждая ячейка которой соответствует клетке квадрата. Внутренние и внешние стены обозначены утолщёнными линиями.
Пример входных данных
1884
10113
13122
2356
313_18_E45868.xlsx
Показать ответ
2244 1075
191 балл
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может:
— добавить в одну из куч (по своему выбору) 2 камня;
— увеличить количество камней в одной из куч (по своему выбору) в 2 раза.

Например, пусть в одной куче 20 камней, а в другой 30 камней; такую позицию в игре обозначим (20, 30). Тогда за один ход можно получить любую из четырёх позиций: (22, 30), (20, 32), (40, 30), (20, 60).

Для того чтобы делать ходы, у каждого игрока есть неограниченное количество камней. Игра завершается в тот момент, когда суммарное количество камней в двух кучах становится не менее 107. Победителем считается игрок, сделавший последний ход, то есть первым получивший такую игровую позицию, при которой в двух кучах суммарно 107 камней или больше. В начальный момент в первой куче было 17 камней, во второй куче — S камней; 1 ≤ S ≤ 89.

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

Известно, что Ваня выиграл своим первым ходом после неудачного первого хода Пети. Укажите максимальное значение S, при котором такая ситуация возможна.
Показать ответ
44
201 балл
Для игры, описанной в задании 19, найдите два наименьших значения S, при которых у Пети есть выигрышная стратегия, причём одновременно выполняются два условия:
— Петя не может выиграть за один ход;
— Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня.
Найденные значения запишите в ответе в порядке возрастания.
Показать ответ
22 35
211 балл
Для игры, описанной в задании 19, найдите наименьшее значение S, при котором одновременно выполняются два условия:
— у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;
— у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.
Показать ответ
41
221 балл
В файле содержится информация о совокупности N вычислительных процессов, которые могут выполняться параллельно или последовательно. Приостановка выполнения процесса не допускается. Будем говорить, что процесс B зависит от процесса A, если для выполнения процесса B необходимы результаты выполнения процесса A. В этом случае процессы A и B могут выполняться только последовательно.

Информация о процессах представлена в файле в виде таблицы. В первом столбце таблицы указан идентификатор процесса (ID), во втором столбце таблицы — время его выполнения в миллисекундах, в третьем столбце перечислены с разделителем «;» ID процессов, от которых зависит данный процесс. Если процесс независимый, то в таблице указано значение 0.

Типовой пример организации данных в файле
ID процесса BВремя выполнения процесса B (мс)ID процесса(-ов) A
10140
10230
1031101; 102
1047103


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

Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемого файла.
22_42A2E4.xlsx
Показать ответ
6
231 балл
В текстовом файле содержится описание ациклического ориентированного взвешенного графа. В каждой строке файла записаны два натуральных числа (L, M) и одно положительное вещественное число (W). L и M – номера вершин графа, W – вес ребра, ведущего из вершины L в вершину M. Таким образом, количество строк в файле равно количеству рёбер в графе. Две вершины графа не могут быть соединены более чем одним ребром.
Найдите и запишите в ответе целую часть длины кратчайшего пути из вершины с номером 1 в вершину с номером 100. Существование хотя бы одного такого пути гарантируется. Под длиной кратчайшего пути понимается минимальная сумма весов рёбер, составляющих путь.
Для выполнения этого задания следует написать программу.
Вершины графа могут быть пронумерованы не подряд. L ≤ 1000, M ≤ 1000; W ≤ 10 000. Количество строк в файле не превосходит 200. Числа в строках разделены произвольным ненулевым количеством пробелов и/или табуляций.

Типовой пример организации данных во входном файле для графа на рисунке.
Рисунок к заданию 23
100 12 1.0
6 7 7.0
6 1 1.0
1 7 5.5
7 100 2.0
4 100 8.0
1 100 12.0
1 4 2.5
Для приведённого примера верным ответом будет 7.
Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемого файла
23_31518.txt
Показать ответ
10971
Решение
1. from collections import defaultdict
from functools import *
d = defaultdict(list)

for s in open('demo_23.txt'):
frm, to, w = [float(x) for x in s.split()]
d[frm].append([to,w])

@lru_cache(None)
def f(curr,end):
if curr==end: return 0
if curr not in d: return 10**8
return min(w+f(to,end) for to,w in d[curr])

print(f(1,100))
241 балл
Задание выполняется с использованием прилагаемых файлов.
Текстовый файл состоит из десятичных цифр и заглавных букв латинского алфавита. Определите в этом файле последовательность идущих подряд символов, представляющих собой запись максимального чётного 14-ричного числа. В ответе запишите количество символов (значащих цифр в записи числа) в этой последовательности.
Примечание. Латинские буквы A, B, C и D означают цифры из алфавита 14-ричной системы счисления.
1_24_931D9C.txt
Показать ответ
2598
Подсказки (3)
  1. Какие символы могут входить в запись числа в 14-ричной системе, и каким должно быть последнее число?
  2. Разбейте файл на максимальные последовательности символов из множества 0–9, A, B, C, D. Чётное 14-ричное число оканчивается одной из цифр 0, 2, 4, 6, 8, A, C.
  3. Сравните подходящие последовательности сначала по количеству значащих цифр без ведущих нулей, а затем лексикографически с учётом порядка цифр 0–9, A–D. Выведите длину максимальной последовательности без ведущих нулей.
Решение
"""Текстовый файл состоит из десятичных цифр и заглавных букв латинского алфавита.
Определите в этом файле последовательность идущих подряд символов, представляющих
собой запись максимального чётного 14-ричного числа.
В ответе запишите количество символов (значащих цифр в записи числа) в этой последовательности.

Примечание. Латинские буквы A, B, C и D означают цифры из алфавита 14-ричной системы счисления."""

s = open('931D9C.txt').read().strip()
neg = 'QWERTYUIOPSFGHJKLZXVNM'
for c in neg:
    s = s.replace(c, ' ')
s = s.split()
mx = 0
for i in range(len(s)):
    t = s[i]
    while t and t[-1] in '13579BD':
        t = t[:-1]
    while t and t[0] == '0':
        t = t[1:]
    mx = max(mx, len(t))
print(mx)
Частые ошибки
  • Считать допустимыми только десятичные цифры и не учитывать A, B, C, D.
  • Проверять чётность по последнему символу без учёта 14-ричной системы счисления.
  • Включать в ответ ведущие нули.
  • Сравнивать числа только по длине, не сравнивая последовательности одинаковой длины.
251 балл
Пусть R — сумма всех различных натуральных делителей целого числа.
Напишите программу, которая перебирает целые числа, бо́льшие 300 000, в порядке возрастания и ищет среди них такие, для которых значение R оканчивается на цифру 1. В ответе запишите в первом столбце таблицы первые пять найденных чисел в порядке возрастания, а во втором столбце — соответствующие им значения R.
Например, для числа 20 R = 1 + 2 + 4 + 5 + 10 + 20 = 42.
Пары запишите в одну строку: пары — через точку с запятой, числа в паре — через тире. Например: 12 — 3; 20 — 5.
Показать ответ
301088 — 598941; 302500 — 727111; 303601 — 331851; 308025 — 567021; 309136 — 603291
262 балла
Входной файл содержит информацию о заявках граждан, обращающихся в многофункциональный центр (МФЦ) в течение календарных суток. В заявке указаны время начала и время окончания приёма специалистом в минутах от начала суток. Рабочие места специалистов МФЦ (окна) пронумерованы натуральными числами начиная с 1. Приём одного гражданина ведёт свободный специалист в окне с минимальным номером. Новый посетитель может обратиться к освободившемуся специалисту начиная со следующей минуты после завершения приёма предыдущего. Если в момент обращения в МФЦ свободных специалистов нет, то гражданин уходит. Определите, сколько граждан смогут попасть на приём в МФЦ в течение 24 часов, и каков номер окна специалиста, который начнёт принимать посетителя последним. Если таких окон несколько, укажите наименьший номер окна.
В первой строке входного файла находится натуральное число K, не превышающее 1000, — количество окон в МФЦ. Во второй строке находится натуральное число N (N ≤ 10 000), обозначающее количество граждан. Каждая из следующих N строк содержит два натуральных числа, каждое из которых не превышает 1440: время начала и время окончания приёма в минутах от начала суток.
Для выполнения задания используйте данные из прилагаемого файла.
1_8ECB7C.zip
Показать ответ
793 2
Подсказки (3)
  1. Обрабатывайте заявки в порядке возрастания времени начала приёма.
  2. Для каждого окна храните время, начиная с которого оно станет свободным. Окно можно занять, если это время меньше времени начала заявки.
  3. Выберите среди свободных окон окно с минимальным номером, увеличьте счётчик принятых граждан и запишите для этого окна время окончания текущего приёма плюс одну минуту. Одновременно обновляйте максимальное время начала приёма и минимальный номер окна при равенстве.
Решение
1. Считаем все заявки из файла и сортируем их по времени начала приёма.

2. Для каждого окна храним момент, с которого оно свободно. Изначально все окна свободны с начала суток.

3. Для очередной заявки находим свободные окна, для которых время освобождения меньше времени начала заявки. Из них выбираем окно с минимальным номером.

4. Если свободное окно найдено, увеличиваем количество принятых граждан на единицу, а время его следующего освобождения устанавливаем равным времени окончания текущего приёма плюс одну минуту.

5. При каждом назначении сравниваем время начала приёма с максимальным временем начала ранее назначенных заявок. При равенстве выбираем минимальный номер окна.
Частые ошибки
  • Считать окно свободным в минуту окончания предыдущего приёма.
  • Выбирать любое свободное окно вместо окна с минимальным номером.
  • Обрабатывать заявки не в порядке времени их начала.
  • При одинаковом времени последнего начала выбирать не минимальный номер окна.
272 балла
Для участников велогонки на каждом километре кольцевой трассы с двусторонним движением установлены пункты питания. Длина кольцевой трассы равна N километров. Нулевой и N-й километры трассы находятся в одной точке. Известно количество комплектов питания в каждом из пунктов на трассе. В каждый пункт комплекты питания доставляет отдельный электрокар. Стоимость доставки питания вычисляется как произведение количества комплектов питания на расстояние от мобильного цеха их подготовки до пункта питания спортсменов на трассе. Мобильный цех подготовки комплектов расположен в одном из пунктов питания на трассе таким образом, что общая стоимость доставки из цеха во все пункты минимальна.
Определите минимальную суммарную стоимость доставки питания для спортсменов из цеха его подготовки в пункты питания на трассе.
Дано два входных файла — файл A и файл B. Каждый файл в первой строке содержит число N (1≤N≤10 000 000) — количество пунктов питания на кольцевой трассе. В следующих N строках находятся количества комплектов питания в пунктах. Все числа натуральные, количество комплектов в каждом пункте не превышает 1000. Пункты перечислены в порядке их расположения на трассе, начиная с первого километра.
В ответе укажите два числа: сначала значение искомой величины для файла A, затем для файла B. Для файла B нельзя использовать переборный алгоритм, вычисляющий сумму для всех возможных положений цеха.
1_69BBBF.zip
Показать ответ
141530; 18192010182272
Подсказки (3)
  1. Для каждого положения цеха стоимость равна сумме произведений количества комплектов на кратчайшее расстояние по кольцу.
  2. Разбейте пункты относительно выбранного положения на левую и правую части. Для быстрого вычисления сумм используйте префиксные суммы количеств комплектов и их позиций.
  3. Для каждого пункта k вычисляйте расстояния до пунктов на дугах длиной не более ⌊N/2⌋. Стоимость всех положений можно получить за O(N) после построения префиксных сумм; выберите минимальное значение.
Решение
1. Пусть пункты пронумерованы от 0 до N−1, а в пункте i находится ai комплектов. Если цех расположен в пункте k, расстояние до пункта i равно min(∣i−k∣,N−∣i−k∣).

2. Стоимость положения k равна F(k)=∑i=0N−1aimin(∣i−k∣,N−∣i−k∣). Прямой перебор всех пар имеет сложность O(N2) и не подходит для файла B.

3. Разделите кольцо относительно пункта k на дуги, расстояния на которых равны последовательным значениям 1,2,…,⌊N/2⌋. С помощью префиксных сумм ∑ai и ∑iai стоимость каждой дуги вычисляется за O(1).

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

5. Тот же алгоритм примените отдельно к файлам A и B. Его сложность составляет O(N) по времени и O(N) по памяти либо O(1) дополнительной памяти при потоковой реализации с хранением необходимых сумм.
Частые ошибки
  • Использовать обычное расстояние по прямой вместо кратчайшего расстояния по кольцу.
  • Перебирать все пары «положение цеха — пункт питания», получая сложность $O(N^2)$.
  • Забыть учесть циклический переход от пункта $N-1$ к пункту $0$.
  • Переполнить 32-битный целочисленный тип при вычислении суммарной стоимости.

Проверка варианта

Задания с кратким ответом проверятся сразу.

Нужен репетитор по информатике?

Посмотрите репетиторов, которые ведут занятия в Precettore, или оставьте заявку — подберём сами.

Репетиторы по информатике

Подбор репетитора

Напишите, что нужно, — команда Precettore подберёт репетитора и свяжется с вами.

Сохраняйте результаты и разбирайте ошибки

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