141ФИПИ BDE963№ 24Күрделі Задание выполняется с использованием прилагаемых файлов. Текстовый файл состоит из символов A, C, D, F и U. Определите максимальное количество идущих подряд пар символов вида «согласная + гласная» в…
- 1
В заданном наборе символов A и U являются гласными, а C, D и F — согласными.
- 2
Файл просматривается слева направо. Для каждой пары соседних символов проверяется, имеет ли она вид «согласная + гласная». При выполнении условия длина текущей серии увеличивается, иначе серия начинается заново.
Ещё 1 қадам — толық шешімде
142ФИПИ C00CCB№ 24Күрделі Текстовый файл состоит из символов $T$, $U$, $V$, $W$, $X$, $Y$ и $Z$. Определите в прилагаемом файле максимальное количество идущих подряд символов (длину непрерывной подпоследовательности), среди…
- 1
Задачу решаем одним проходом по строке с помощью двух границ окна. При добавлении очередного символа увеличиваем счётчик символов $W$, если добавлен именно $W$.$$count_W \mathrel{+}= (s[r] = W)$$
- 2
Если в текущем окне оказалось более 130 символов $W$, сдвигаем левую границу вправо, уменьшая счётчик при удалении символа $W$.$$count_W > 130 \Rightarrow l \mathrel{+}= 1$$
Ещё 2 қадам — толық шешімде
143ФИПИ C2DB39№ 24Күрделі Текстовый файл состоит из заглавных букв латинского алфавита $A$, $B$, $C$, $D$, $E$ и $F$. Определите максимальное количество идущих подряд символов в файле, среди которых пара символов $CD$ (в…
- 1
Просматриваем строку слева направо, поддерживая текущий фрагмент с помощью левой и правой границ.
- 2
При добавлении символа $D$ проверяем, является ли предыдущий символ $C$. Если да, число вхождений пары $CD$ увеличивается на единицу.$$count \mathrel{+}= 1$$
Ещё 2 қадам — толық шешімде
144ФИПИ CE2CF3№ 24Күрделі Текстовый файл состоит из символов $A$, $B$, $C$, $D$ и $U$. Определите максимальное количество идущих подряд пар символов вида «согласная + гласная» в прилагаемом файле. Для выполнения этого…
- 1
В файле считаем символы $B$, $C$ и $D$ согласными, а символы $A$ и $U$ — гласными.
- 2
Последовательно просматриваем файл слева направо и проверяем каждую пару соседних символов на соответствие шаблону «согласная + гласная».
Ещё 2 қадам — толық шешімде
145ФИПИ CF38C4№ 24Күрделі Текстовый файл состоит из цифр 0, 2, 3, 4, 5 и знаков арифметических операций «−» и «*» (вычитание и умножение). Определите максимальное количество символов в непрерывной последовательности, которая…
- 1
Из файла выделяются непрерывные фрагменты, в которых цифры образуют неотрицательные числа, между соседними числами находится ровно один знак «−» или «*».
- 2
Фрагменты, содержащие два знака подряд, многозначные числа с ведущим нулём или число 0 со знаком, не являются корректными выражениями.
Ещё 1 қадам — толық шешімде
Текстовый файл состоит из десятичных цифр и заглавных букв латинского алфавита. Определите в прилагаемом файле максимальное количество идущих подряд символов, среди которых подстрока 2025…
- 1
Считаем позиции начала всех вхождений подстроки 2025. Вхождения могут пересекаться, поэтому проверяем каждую позицию строки.
- 2
Построим префиксные суммы количества букв Y и количества вхождений 2025. Для фрагмента [l, r] число букв Y вычисляется за O(1).
Ещё 2 қадам — толық шешімде
147ФИПИ DD0C38№ 24Күрделі Текстовый файл состоит из символов $T$, $U$, $V$, $W$, $X$, $Y$ и $Z$. Определите в прилагаемом файле минимальное количество идущих подряд символов (длину непрерывной подпоследовательности), среди…
- 1
Считываем строку из файла и рассматриваем её как последовательность символов.
- 2
Двигаем правую границу окна слева направо. При встрече символа $W$ увеличиваем счётчик символов $W$.$$count_W \mathrel{+}= 1$$
Ещё 2 қадам — толық шешімде
148ФИПИ E74424№ 24Күрделі Текстовый файл состоит из заглавных букв латинского алфавита Q, R, W и цифр 1, 2, 4. Определите в прилагаемом файле максимальное количество идущих подряд символов, среди которых ни одна буква не…
- 1
Условие выполняется, если каждый следующий символ имеет тип, отличный от типа предыдущего: после буквы должна идти цифра, а после цифры — буква.
- 2
При последовательном просмотре файла поддерживаем длину текущего подходящего фрагмента. Если тип текущего символа отличается от типа предыдущего, увеличиваем длину; иначе начинаем новый фрагмент с длины 1.$$current = \begin{cases} current + 1, & type(s_i) \ne type(s_{i-1}) \\ 1, & type(s_i) = type(s_{i-1}) \end{cases}$$
Ещё 1 қадам — толық шешімде
149ФИПИ F04010№ 24Күрделі Текстовый файл состоит из символов $T$, $U$, $V$, $W$, $X$, $Y$ и $Z$. Определите в прилагаемом файле минимальное количество идущих подряд символов (длину непрерывной подпоследовательности), среди…
- 1
Считываем содержимое приложенного файла как строку.
- 2
Двигаем правую границу окна по строке и подсчитываем количество символов $Y$ внутри окна.$$count_Y \geq 260$$
Ещё 2 қадам — толық шешімде
150ФИПИ 087707№ 25Күрделі В программе используется одномерный целочисленный массив $A$ с индексами от 0 до 10. Фрагмент программы вычисляет значение переменной $s$ по формуле $s = s + A[i] - A[i+1]$ при $i$ от 0 до 9. В…
- 1
Цикл выполняется для $i$ от 0 до 9, поэтому переменная $s$ получает сумму он соседних разностей.$$s=(A[0]-A[1])+(A[1]-A[2])+\dots+(A[9]-A[10])$$
- 2
Слагаемые с промежуточными элементами взаимно сокращаются.$$s=A[0]-A[10]$$
Ещё 1 қадам — толық шешімде
151ФИПИ 08CA7D№ 25Күрделі В программе используется одномерный целочисленный массив $A$ с индексами от $0$ до $9$. Значения элементов равны $5$, $8$, $4$, $3$, $7$, $9$, $6$, $2$, $0$, $1$ соответственно, то есть $A[0]=5$…
- 1
Изначально $A[9]=1$, а $c=0$. При $i=0$: $A[0]=5>1$, поэтому выполняется обмен и $c$ становится равным $1$. Теперь $A[9]=5$.$$c=1$$
- 2
При $i=1$: $A[1]=8>5$, выполняется обмен и $c$ становится равным $2$. Теперь $A[9]=8$.$$c=2$$
Ещё 3 қадам — толық шешімде
152ФИПИ 1B43D2№ 25Күрделі Дан целочисленный массив из 30 элементов. Элементы массива могут принимать натуральные значения от 1 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит…
- 1
Для поиска минимума среди чётных элементов задаём начальное значение k, большее любого допустимого элемента массива.$$k = 10001$$
- 2
Просматриваем все элементы массива. Если элемент чётный и меньше текущего значения k, сохраняем его в k.$$a[i] \bmod 2 = 0 \land a[i] < k \Rightarrow k := a[i]$$
Ещё 2 қадам — толық шешімде
153ФИПИ 1B61EA№ 25Күрделі Дан целочисленный массив из 30 элементов. Элементы массива могут принимать натуральные значения от 1 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит…
- 1
Выберем первый элемент массива, не делящийся нацело на 5, в качестве начального значения минимума.$$a[i] \mathbin{\%} 5 \ne 0$$
- 2
Просмотрим массив и обновим минимум, если найдём меньший элемент, не делящийся на 5.$$j = \min\{a[i]\mid a[i] \mathbin{\%} 5 \ne 0\}$$
Ещё 2 қадам — толық шешімде
Дана последовательность из $N$ натуральных чисел. Рассматриваются все её непрерывные подпоследовательности, такие что сумма элементов каждой из них кратна $k = 61$. Найдите среди них…
- 1
Введём префиксные суммы $S_0 = 0$ и $S_i = a_1 + a_2 + \ldots + a_i$. Сумма подпоследовательности с номерами от $l+1$ до $r$ равна $S_r - S_l$.
- 2
Эта сумма кратна $61$ тогда и только тогда, когда $S_r$ и $S_l$ имеют одинаковые остатки при делении на $61$.
Ещё 3 қадам — толық шешімде
155ФИПИ 20BCB1№ 25Күрделі В программе используется одномерный целочисленный массив $A$ с индексами от 0 до 10. Фрагмент программы вычисляет значение переменной $s$ по формуле $s := s + A[i] - A[i+1]$ при изменении $i$ от 0…
- 1
Цикл выполняется для $i = 0, 1, \dots, 9$, поэтому переменная $s$ равна сумме соседних разностей.$$s=(A[0]-A[1])+(A[1]-A[2])+\dots+(A[9]-A[10])$$
- 2
Все промежуточные элементы сокращаются: $-A[1]+A[1}$, $-A[2]+A[2]$ и так далее.$$s=A[0]-A[10]$$
Ещё 1 қадам — толық шешімде
156ФИПИ 2B1A9F№ 25Күрделі Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от −10 000 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит…
- 1
Для хранения максимального чётного элемента используем переменную j. Начальное значение −10001 меньше любого возможного элемента массива.$$j = -10001$$
- 2
Первым циклом просматриваем массив и обновляем максимум только для чётных элементов.$$a[i] \bmod 2 = 0 \land a[i] > j \Rightarrow j = a[i]$$
Ещё 2 қадам — толық шешімде
157ФИПИ 2BC7E7№ 25Күрделі В программе используется одномерный целочисленный массив $A$ с индексами от 0 до 9. Значения элементов равны 9, 13, 10, 3, 1, 7, 0, 4, 5, 12 соответственно, то есть $A[0] = 9$, $A[1] = 13$ и так…
- 1
Начинаем с массива $[9, 13, 10, 3, 1, 7, 0, 4, 5, 12]$ и $c = 0$. При $i = 1$ выполняется условие $9 < 13$, поэтому $c = 1$.
- 2
При $i = 2$ после предыдущего обмена выполняется условие $9 < 10$, поэтому $c = 2$.
Ещё 4 қадам — толық шешімде
158ФИПИ 2BF795№ 25Күрделі В программе используется одномерный целочисленный массив $A$ с индексами от $0$ до $9$. Значения элементов массива равны $20$, $19$, $17$, $41$, $15$, $42$, $24$, $56$, $4$, $13$ соответственно…
- 1
В начале $s=0$, а $A[4]=15$. При $i=0$: $20 \geq 15$, поэтому к $s$ прибавляется $20 \bmod 15=5$. После обмена $A[4]=20$.$$s=5$$
- 2
При $i=1$ и $i=2$ условие не выполняется: $19<20$ и $17<20$.
Ещё 4 қадам — толық шешімде
159ФИПИ 2D6EE5№ 25Күрделі В программе используется одномерный целочисленный массив $A$ с индексами от $0$ до $10$. Фрагмент программы выполняет следующие действия: $s := 0$, $n := 10$; для $i$ от $0$ до $n-1$ вычисляется…
- 1
Цикл выполняется для $i$ от $0$ до $9$, поэтому к переменной $s$ добавляется сумма соседних разностей:$$s=(A[0]-A[1])+(A[1]-A[2])+\dots+(A[9]-A[10])$$
- 2
При раскрытии суммы все промежуточные значения массива сокращаются.$$s=A[0]-A[10]$$
Ещё 1 қадам — толық шешімде
160ФИПИ 332FD5№ 25Күрделі Дан целочисленный массив из 30 элементов. Элементы массива могут принимать натуральные значения от 1 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит…
- 1
Сначала заведём переменную s для суммы подходящих элементов и обнулим её.
- 2
Первым проходом просмотрим все 30 элементов. Если элемент не больше 197 и нечётен, добавим его к сумме.$$a[i] \leq 197 \land a[i] \bmod 2 = 1$$
Ещё 4 қадам — толық шешімде