181ФИПИ CC2CF4№ 25Повышенная В программе используется одномерный целочисленный массив $A$ с индексами от 0 до 9. Значения элементов равны $3, 1, 4, 6, 5, 7, 8, 0, 2, 9$ соответственно, то есть $A[0] = 3$, $A[1] = 1$ и т. д…
- 1
В начале $A[0] = 3$ и $c = 0$. При $i = 1$: $A[1] = 1$, условие не выполняется.
- 2
При $i = 2$: $A[2] = 4 > 3$, поэтому выполняется обмен и $c = 1$. Теперь $A[0] = 4$.
Ещё 4 шага — в полном решении
182ФИПИ DE2F2D№ 25Повышенная Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от $-10\,000$ до $10\,000$ включительно. Опишите на естественном языке или на одном из языков…
- 1
Последовательно просматриваем все элементы массива.$$i = 1,2,\ldots,20$$
- 2
Если очередной элемент не делится на 7, проверяем, больше ли он текущего максимума. Для первого подходящего элемента удобно отдельно установить начальное значение максимума.
Ещё 2 шага — в полном решении
183ФИПИ E135D6№ 25Повышенная В программе используется одномерный целочисленный массив $A$ с индексами от $0$ до $9$. Значения элементов равны $6, 9, 7, 2, 1, 5, 0, 3, 4, 8$ соответственно. Определите значение переменной $c$…
- 1
Изначально массив имеет вид $[6, 9, 7, 2, 1, 5, 0, 3, 4, 8]$, а $c=0$.
- 2
При $i=0$: $6<9$, поэтому выполняется обмен, $c=1$. При $i=1$: $6<7$, выполняется обмен, $c=2$.
Ещё 4 шага — в полном решении
184ФИПИ E49B50№ 25Повышенная В программе используется одномерный целочисленный массив $A$ с индексами от 0 до 11. Значения элементов равны 20, 19, 17, 41, 23, 12, 24, 16, 4, 13, 6, 15 соответственно, то есть $A[0] = 20$…
- 1
Так как $n = 0$ и значение $n$ не изменяется, на каждом шаге сравниваются $A[i]$ и $A[0]$. При выполнении условия к $s$ прибавляется индекс $i$, после чего элементы $A[i]$ и $A[0]$ меняются местами.$$s := s + i$$
- 2
Последовательно отслеживая изменения массива, получаем срабатывание условия при индексах $i = 0, 1, 2, 5, 8$.
Ещё 1 шаг — в полном решении
185ФИПИ E6288C№ 25Повышенная Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит…
- 1
Заведём счётчик подходящих элементов и обнулим его.$$j = 0$$
- 2
Первым проходом просмотрим все элементы массива. Элемент учитывается, если он больше 100 и остаток от деления на 4 не равен нулю.$$a[i] > 100 \land a[i] \bmod 4 \ne 0$$
Ещё 2 шага — в полном решении
186ФИПИ ECAE49№ 25Высокая На вход программы поступает последовательность из $n$ целых положительных чисел. Рассматриваются все пары элементов последовательности $a_i$ и $a_j$, такие что $i < j$ и $a_i > a_j$. Среди пар…
- 1
Последовательность просматривается слева направо. В момент обработки числа $x = a_j$ в таблице уже находятся только элементы $a_i$ с индексами $i < j$, поэтому порядок элементов пары автоматически соблюдается.$$i < j$$
- 2
Сумма $y + x$ делится на $117$, если остаток числа $y$ равен $(-x) \bmod 117$. Для каждого остатка храним максимальное предыдущее число с таким остатком и само число для вывода.$$(y + x) \bmod 117 = 0$$
Ещё 5 шагов — в полном решении
187ФИПИ F1076A№ 25Повышенная Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от −10 000 до 10 000 включительно. Опишите на естественном языке или на одном из языков программирования…
- 1
Используем переменную $k$ как счётчик элементов, которые не делятся на 7, и вначале обнуляем её.$$k = 0$$
- 2
Последовательно просматриваем все элементы массива. Если остаток от деления элемента на 7 не равен нулю, элемент не делится на 7.$$a[i] \bmod 7 \ne 0$$
Ещё 2 шага — в полном решении
188ФИПИ F6FBF6№ 25Высокая На вход программы поступает последовательность из $n$ целых положительных чисел. Рассматриваются все пары элементов последовательности $a_i$ и $a_j$, такие что $i < j$ и $a_i > a_j$. Среди пар…
- 1
Читаем последовательность слева направо. В момент обработки числа $x = a_j$ все сохранённые числа являются элементами с индексами меньше $j$, поэтому условие $i < j$ выполняется автоматически.
- 2
Если $r = x \bmod m$, то для делимости суммы на $m$ остаток предыдущего числа должен быть равен $(m-r) \bmod m$.$$a_i \bmod m = (m - (x \bmod m)) \bmod m$$
Ещё 5 шагов — в полном решении
189ФИПИ 05BFA6№ 26Высокая В магазине для упаковки подарков есть $N$ кубических коробок из материалов двух видов. Одну коробку можно поместить в другую, если длина её стороны хотя бы на $D$ единиц меньше длины стороны другой…
- 1
Запишем каждую коробку как пару: длина стороны и материал. Отсортируем коробки по длине стороны.
- 2
Для коробки длины $x$ и материала $c$ допустимым предшественником является коробка материала $1-c$ с длиной не более $x-D$.
Ещё 3 шага — в полном решении
190ФИПИ 09681e№ 26Высокая Сервер выполняет запросы на передачу данных. Сведения о каждом выполненном запросе — время регистрации, идентификатор клиента и объём переданных данных — сохраняются в журнале работы, а сам запрос…
- 1
Для каждого запроса преобразуем время в секунды от начала суток и сравниваем его с 11:59:59. Если запрос подходит по времени, увеличиваем суммарный объём данных соответствующего клиента.$$t = 3600h + 60m + s$$
- 2
Перед размещением запроса проверяем, достаточно ли свободного места. Если текущий объём памяти вместе с новым запросом превысит K, текущий объём становится очередной резервной копией, после чего раздел освобождается.$$M + S > K \Rightarrow B_i = M,\ M = 0$$
Ещё 3 шага — в полном решении
191ФИПИ 0AF4A5№ 26Высокая Сервер выполняет запросы на передачу данных. Для каждого запроса в журнале указаны время регистрации, идентификатор клиента и объём переданных данных. Переданные данные сохраняются в специальном…
- 1
Для каждого идентификатора клиента поддерживаем суммарный объём переданных данных. Это можно сделать словарём, не храня весь журнал.$$total[C] \mathrel{+}= S$$
- 2
Поддерживаем объём данных, накопленных в специальном разделе. Если очередной запрос не помещается, текущий объём становится резервной копией, после чего раздел освобождается.$$current + S > K \Rightarrow backups.append(current),\ current = 0$$
Ещё 3 шага — в полном решении
192ФИПИ 0C1433№ 26Высокая В магазине для упаковки подарков есть $N$ кубических коробок. Самой интересной считается упаковка подарка по принципу матрёшки: подарок упаковывается в одну из коробок, та в свою очередь в другую…
- 1
Считаем все размеры коробок и сортируем их по неубыванию. Одинаковые размеры нельзя использовать последовательно, поскольку их разность меньше 7.
- 2
Для каждой позиции вычисляем длину максимальной цепочки, которая заканчивается коробкой на этой позиции: рассматриваем предыдущие коробки с размером не больше текущего минус 7.
Ещё 2 шага — в полном решении
193ФИПИ 1e4F52№ 26Высокая Сервер выполняет запросы на передачу данных, при этом сведения о каждом выполненном запросе (время регистрации, идентификатор клиента и объём переданных данных) сохраняются в журнале работы, а сам…
- 1
Для каждого запроса увеличиваем сумму переданных данных соответствующего клиента на величину $S$.
- 2
Поддерживаем объём данных в специальном разделе. Если текущий объём вместе с новым запросом становится не меньше вместимости раздела $K$, создаём резервную копию накопленных данных, запоминаем её объём и очищаем раздел перед обработкой…
Ещё 3 шага — в полном решении
194ФИПИ 1F25B2№ 26Высокая В магазине для упаковки подарков есть $N$ кубических коробок. Подарок упаковывается в одну из коробок, та в свою очередь в другую коробку и так далее. Одну коробку можно поместить в другую, если…
- 1
Считайте из файла все длины сторон коробок и отсортируйте их по возрастанию. Одинаковые коробки можно учитывать отдельно, но использовать две коробки одинакового размера одна внутри другой нельзя.
- 2
Для каждой коробки определите максимальную длину цепочки, заканчивающейся этой коробкой. Предыдущая коробка должна иметь длину стороны не более $a_i - 13$.
Ещё 2 шага — в полном решении
195ФИПИ 290F15№ 26Высокая Задание выполняется с использованием прилагаемых файлов. Входной файл содержит заявки пассажиров, желающих сдать свой багаж в камеру хранения. В заявке указаны время сдачи багажа и время…
- 1
Создаём массив времени освобождения ячеек. Изначально все ячейки свободны; это можно обозначить временем освобождения 0.
- 2
Заявки обрабатываются в порядке, указанном во входном файле. Для заявки с временем сдачи багажа t просматриваем ячейки по возрастанию номеров.
Ещё 3 шага — в полном решении
196ФИПИ 38235A№ 26Повышенная В магазине для упаковки подарков есть $N$ кубических коробок. Самой интересной считается упаковка подарка по принципу матрёшки: подарок упаковывается в одну из коробок, та в свою очередь в другую…
- 1
Сначала отсортируем все длины сторон коробок по возрастанию. Одинаковые коробки нельзя использовать последовательно, так как разность их сторон меньше 6.$$a_1 \leqslant a_2 \leqslant \dots \leqslant a_N$$
- 2
Будем просматривать отсортированный массив слева направо. Первую выбранную коробку включаем в цепочку, а следующую включаем только при выполнении условия размещения.$$a_i-a_{\text{last}}\geqslant 6$$
Ещё 2 шага — в полном решении
197ФИПИ 3B2A3F№ 26Высокая Входной файл содержит сведения о заявках на проведение мероприятий в конференц-зале. В каждой заявке указаны время начала и время окончания мероприятия (в минутах от начала суток). Если время начала…
- 1
Считаем мероприятия совместимыми, если начало следующего мероприятия не меньше окончания предыдущего.
- 2
Отсортируем заявки по времени окончания и применим жадный алгоритм: последовательно выбираем мероприятие, которое начинается не раньше окончания последнего выбранного.
Ещё 3 шага — в полном решении
198ФИПИ 41e442№ 26Высокая В магазине продаётся $N$ товаров нескольких артикулов. Товары одного артикула имеют одинаковую цену. Учёт товаров ведётся поштучно, для каждой единицы товара известен её текущий статус: продана или…
- 1
Для каждой записи накапливаем сумму цен и количество товаров. Средняя цена вычисляется как сумма всех цен, делённая на $N$.$$\overline{p}=\frac{\sum_{i=1}^{N}p_i}{N}$$
- 2
Для каждого артикула подсчитываем число проданных товаров $sold$, число оставшихся товаров $left$ и сохраняем цену артикула.
Ещё 3 шага — в полном решении
199ФИПИ 4522EF№ 26Повышенная При онлайн-покупке билета на концерт известно, какие места в зале уже заняты. Необходимо купить билет на такое место в ряду, чтобы перед ним как можно больше идущих подряд кресел с таким же номером…
- 1
Сгруппируем занятые места по номерам рядов и отсортируем номера мест внутри каждого ряда.
- 2
Для двух соседних занятых мест с номерами $a$ и $b$ количество свободных мест между ними равно $b-a-1$. Если первое занятое место в ряду имеет номер $b$, перед ним свободно $b-1$ кресел.$$free=b-a-1$$
Ещё 2 шага — в полном решении
200ФИПИ 4A2884№ 26Высокая При онлайн-покупке билета на концерт известны номера занятых мест в зале. Необходимо выбрать свободное место так, чтобы перед ним было как можно больше подряд идущих свободных кресел с тем же…
- 1
Сгруппировать занятые места по номерам рядов.
- 2
Для каждого ряда упорядочить номера занятых мест по возрастанию.
Ещё 2 шага — в полном решении