В магазине продаётся $N$ товаров нескольких артикулов. Товары одного артикула имеют одинаковую цену. Учёт товаров ведётся поштучно, для каждой единицы товара известен её текущий статус: продана или…
- 1
Для каждой записи накапливаем сумму цен и количество товаров. Средняя цена вычисляется как сумма всех цен, делённая на $N$.$$\overline{p}=\frac{\sum_{i=1}^{N}p_i}{N}$$
- 2
Для каждого артикула подсчитываем число проданных товаров $sold$, число оставшихся товаров $left$ и сохраняем цену артикула.
Ещё 3 шага — в полном решении
При онлайн-покупке билета на концерт известно, какие места в зале уже заняты. Необходимо купить билет на такое место в ряду, чтобы перед ним как можно больше идущих подряд кресел с таким же номером…
- 1
Сгруппируем занятые места по номерам рядов и отсортируем номера мест внутри каждого ряда.
- 2
Для двух соседних занятых мест с номерами $a$ и $b$ количество свободных мест между ними равно $b-a-1$. Если первое занятое место в ряду имеет номер $b$, перед ним свободно $b-1$ кресел.$$free=b-a-1$$
Ещё 2 шага — в полном решении
При онлайн-покупке билета на концерт известны номера занятых мест в зале. Необходимо выбрать свободное место так, чтобы перед ним было как можно больше подряд идущих свободных кресел с тем же…
- 1
Сгруппировать занятые места по номерам рядов.
- 2
Для каждого ряда упорядочить номера занятых мест по возрастанию.
Ещё 2 шага — в полном решении
В магазине есть $N$ кубических коробок. Одну коробку можно поместить в другую, если длина её стороны хотя бы на 3 единицы меньше длины стороны другой коробки. Определите наибольшее количество…
- 1
Считаем все длины сторон коробок и сортируем их по возрастанию.$$a_1 \leq a_2 \leq \dots \leq a_N$$
- 2
Последовательно строим цепочку. Очередную коробку можно добавить, если её сторона отличается от стороны последней выбранной коробки не менее чем на 3.$$a_i-a_{last}\geq 3$$
Ещё 2 шага — в полном решении
Два игрока играют в следующую игру. Перед ними лежат две кучки камней, в первой из которых 3, а во второй — 2 камня. У каждого игрока неограниченно много камней. Игроки ходят по очереди. Ход состоит…
- 1
Из исходной позиции $(3,2)$ первый игрок может получить только четыре различные позиции: $(9,2)$, $(6,2)$, $(3,6)$ или $(3,5)$.
- 2
Если первый игрок получил позицию $(9,2)$, второй игрок умножает число камней в первой куче на 3 и получает $27$ камней. Если получена позиция $(3,6)$, второй игрок умножает вторую кучку на 3 и получает $18$ камней, а затем анализ…
Ещё 3 шага — в полном решении
В магазине для упаковки подарков есть $N$ кубических коробок. Самой интересной считается упаковка подарка по принципу матрёшки: подарок упаковывается в одну из коробок, та в свою очередь в другую…
- 1
Считаем, что коробки вложены от меньшей к большей. Для соседних выбранных коробок должно выполняться условие разности сторон не менее 10.$$a_{i+1} - a_i \geq 10$$
- 2
Отсортируем все длины сторон по возрастанию.
Ещё 3 шага — в полном решении
Отдел маркетинга сети продуктовых магазинов составляет рейтинг продуктов по информации об их сроках хранения с момента изготовления и после вскрытия упаковки. Для каждого продукта известны срок его…
- 1
Для решения необходимо получить пары сроков хранения из прилагаемого входного файла и объединить все $2N$ значений в один список с указанием продукта и типа срока.
- 2
Значения следует обрабатывать по возрастанию. Если первым ещё не обработанным значением является срок хранения продукта, его место определяется слева; если это срок годности после вскрытия, его место определяется справа.
Ещё 2 шага — в полном решении
Отдел маркетинга сети продуктовых магазинов составляет рейтинг продуктов по информации об их сроках хранения с момента изготовления и после вскрытия упаковки. Для каждого продукта известен срок его…
- 1
Для каждого продукта создаём две записи: срок хранения с момента изготовления и срок годности после вскрытия. Каждой записи сопоставляем номер продукта и тип срока.
- 2
Сортируем все записи по возрастанию значения срока. Так как все исходные числа различны, порядок обработки однозначен.
Ещё 3 шага — в полном решении
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу один камень или увеличить…
- 1
Игрок выигрывает одним ходом, если после прибавления одного камня или удвоения количество камней становится не менее 65. При $S \geq 33$ достаточно удвоения. При $S=64$ можно также прибавить один камень.$$2S \geq 65 \Rightarrow S \geq 33; \qquad S+1 \geq 65 \Rightarrow S=64$$
- 2
Для задания 1б подходит $S=32$: Петя не может выиграть сразу, но после его хода получаются позиции $33$ или $64$, из которых Ваня выигрывает одним ходом.
Ещё 4 шага — в полном решении
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в одну из куч один камень…
- 1
Для каждой позиции рассматриваются четыре возможных хода: (a+1,b), (3a,b), (a,b+1), (a,3b). Если после хода сумма не менее 74, ход является немедленно выигрышным.
- 2
В позициях (4,23) и (7,22) выигрышная стратегия есть у Вани. После любого хода Пети Ваня получает возможность закончить игру или перевести её в позицию, из которой Петя вынужден открыть Ване немедленную победу.$$W(4,23)=W(7,22)=\text{Ваня}$$
Ещё 3 шага — в полном решении
При онлайн-покупке билета на концерт известно, какие места в зале уже заняты. Необходимо купить два билета на такие соседние места в одном ряду, чтобы перед ними все кресла с такими же номерами были…
- 1
Сгруппируем занятые места по номерам рядов и для каждого ряда определим максимальный номер занятого места.
- 2
В ряду с максимальным занятым номером $q$ подходящая пара может начинаться только после этого места. Поэтому проверяем места $q+1$ и $q+2$: если они существуют, то пара $q+1$, $q+2$ свободна, а перед ними нет занятых мест.
Ещё 2 шага — в полном решении
Два игрока, Петя и Ваня, играют в игру с парой неотрицательных целых чисел. Первый ход делает Петя. За один ход игрок должен заменить одно из чисел пары по своему выбору на сумму обоих чисел. Игра…
- 1
Задание 1. Из позиции $(14,S)$ можно получить либо $(14+S,S)$ с суммой $14+2S$, либо $(14,14+S)$ с суммой $28+S$.$$14+2S\ge 65 \quad\text{или}\quad 28+S\ge 65$$
- 2
Первое неравенство даёт $S\ge 25{,}5$, поэтому при целом $S$ получаем $S\ge 26$. Второе даёт $S\ge 37$. Минимальное подходящее значение — $S=26$; Петя получает позицию $(40,26)$ с суммой 66.$$14+2\cdot 26=66$$
Ещё 6 шагов — в полном решении
На грузовом судне необходимо перевезти контейнеры, имеющие одинаковый габарит и разные массы. Общая масса всех контейнеров превышает грузоподъёмность судна. Количество грузовых мест на судне не…
- 1
Для максимального количества контейнеров выгодно выбирать самые лёгкие контейнеры: замена любого выбранного контейнера на более лёгкий не увеличивает суммарную массу.
- 2
Отсортируем массив масс по возрастанию.$$m_1 \leq m_2 \leq \dots \leq m_N$$
Ещё 2 шага — в полном решении
Во время сессии студенты сдают 4 экзамена, за каждый из которых можно получить от 2 до 5 баллов. Студенты, получившие хотя бы одну «двойку», считаются не сдавшими сессию. Сформируйте рейтинговый…
- 1
Для каждого студента подсчитываем количество оценок, равных 2, и сумму четырёх оценок.$$twos_i = \#\{j \mid grade_{ij}=2\},\quad sum_i=\sum_{j=1}^{4}grade_{ij}$$
- 2
Студенты с нулевым количеством двоек сдали сессию. Их сортируем по убыванию суммы оценок, что эквивалентно сортировке по убыванию среднего балла, а при равенстве — по возрастанию ID.
Ещё 3 шага — в полном решении
Входной файл содержит сведения о заявках на проведение мероприятий в конференц-зале. В каждой заявке указаны время начала и время окончания мероприятия в минутах от начала суток. Если время начала…
- 1
Считаем пары чисел из файла как интервалы времени проведения мероприятий.
- 2
Для получения максимального количества мероприятий сортируем интервалы по времени окончания и применяем жадный алгоритм: выбираем мероприятие, если его время начала не меньше времени окончания последнего выбранного мероприятия.$$start_i \ge end_{last}$$
Ещё 2 шага — в полном решении
Организация купила для своих сотрудников все места в нескольких подряд идущих рядах на концертной площадке. Известно, какие места уже распределены между сотрудниками. Найдите ряд с наибольшим…
- 1
Сгруппируем занятые места по номерам рядов и отсортируем номера мест внутри каждого ряда.$$r \to [m_1, m_2, \ldots, m_k]$$
- 2
Два соседних свободных места, ограниченные занятыми местами слева и справа, находятся между двумя занятыми местами, номера которых отличаются на 3.$$m_{i+1}-m_i=3 \Rightarrow (m_i+1,\ m_i+2)$$
Ещё 2 шага — в полном решении
В магазине для упаковки подарков есть $N$ кубических коробок. Одну коробку можно поместить в другую, если длина её стороны хотя бы на 9 единиц меньше длины стороны другой коробки. Определите…
- 1
Сортируем длины сторон коробок по возрастанию. В цепочке коробки идут в порядке возрастания, а разность между соседними сторонами должна быть не меньше 9.$$a_{i_{k+1}} \geq a_{i_k}+9$$
- 2
Для каждого элемента массива справа налево вычисляем максимальную длину цепочки, начинающейся с него. Если следующего подходящего элемента нет, длина цепочки равна 1; иначе к длине цепочки после следующего элемента прибавляем 1.$$dp_i = 1 + dp_j,\quad j=\min\{k>i\mid a_k\geq a_i+9\}$$
Ещё 2 шага — в полном решении
Сервер выполняет запросы на передачу данных. Сведения о каждом запросе — время регистрации, идентификатор клиента и объём переданных данных — сохраняются в журнале, а сам запрос помещается в…
- 1
Создаём таблицу или словарь, где каждому идентификатору клиента соответствует суммарный объём переданных им данных.$$T_C = \sum S_i$$
- 2
Из полученных сумм выбираем значения не менее 150 000 Кбайт и находим сумму двух наименьших таких значений.
Ещё 2 шага — в полном решении
Входной файл содержит информацию о заявках граждан, обращающихся в многофункциональный центр (МФЦ) в течение календарных суток. В заявке указаны время начала и время окончания приёма специалистом в…
- 1
Считаем все заявки из файла и сортируем их по времени начала приёма.
- 2
Для каждого окна храним момент, с которого оно свободно. Изначально все окна свободны с начала суток.
Ещё 3 шага — в полном решении
Два игрока, Петя и Ваня, играют в игру со словами. Дан набор слов русского алфавита, причём ни одно заданное слово не является началом другого. Игроки по очереди приписывают буквы справа, и каждое…
- 1
В первом наборе слова начинаются с разных букв: А и Д. Если Петя начинает с А, все последующие буквы однозначно определены, и слово АБВГДАБВГДХ получается на 11-м ходу. Нечётный номер хода означает победу Пети.$$11 \equiv 1 \pmod 2$$
- 2
Если Петя начинает с Д, слово ДГВБАДГВБА получается на 10-м ходу, поэтому победил бы Ваня. Следовательно, выигрышная стратегия Пети — первым написать А, затем каждый раз приписывать единственную возможную букву.$$10 \equiv 0 \pmod 2$$
Ещё 8 шагов — в полном решении