РУҚА
ЕГЭ · информатика · тақырып бойынша шешімдер

ФИПИ тапсырмаларының шешімдері ЕГЭ по информатикаға: «Массивтер және жолдар» — жауаптарымен

ФИПИ ашық банкінен тақырыптың әрбір есебі — жауабымен және алғашқы қадамдарымен талдау. Толық қадамдық шешім және ресми кілт – карточкадағы сілтемелер бойынша.

Шешімсіз тапсырмалар
238
жауаптары бар шешімдер
2 435
пәндегі есептер
12
тізім беттері
141ФИПИ BDE963№ 24Күрделі

Максимальная серия пар

Задание выполняется с использованием прилагаемых файлов. Текстовый файл состоит из символов A, C, D, F и U. Определите максимальное количество идущих подряд пар символов вида «согласная + гласная» в…

  1. 1
    В заданном наборе символов A и U являются гласными, а C, D и F — согласными.
  2. 2
    Файл просматривается слева направо. Для каждой пары соседних символов проверяется, имеет ли она вид «согласная + гласная». При выполнении условия длина текущей серии увеличивается, иначе серия начинается заново.

Ещё 1 қадам — толық шешімде

Шешім полностьюЖауапШешу самому3 қадам в разборе
142ФИПИ C00CCB№ 24Күрделі

Максимальная подпоследовательность

Текстовый файл состоит из символов $T$, $U$, $V$, $W$, $X$, $Y$ и $Z$. Определите в прилагаемом файле максимальное количество идущих подряд символов (длину непрерывной подпоследовательности), среди…

  1. 1
    Задачу решаем одним проходом по строке с помощью двух границ окна. При добавлении очередного символа увеличиваем счётчик символов $W$, если добавлен именно $W$.$$count_W \mathrel{+}= (s[r] = W)$$
  2. 2
    Если в текущем окне оказалось более 130 символов $W$, сдвигаем левую границу вправо, уменьшая счётчик при удалении символа $W$.$$count_W > 130 \Rightarrow l \mathrel{+}= 1$$

Ещё 2 қадам — толық шешімде

Шешім полностьюЖауапШешу самому4 қадам в разборе
143ФИПИ C2DB39№ 24Күрделі

Максимальная подстрока с парами CD

Текстовый файл состоит из заглавных букв латинского алфавита $A$, $B$, $C$, $D$, $E$ и $F$. Определите максимальное количество идущих подряд символов в файле, среди которых пара символов $CD$ (в…

  1. 1
    Просматриваем строку слева направо, поддерживая текущий фрагмент с помощью левой и правой границ.
  2. 2
    При добавлении символа $D$ проверяем, является ли предыдущий символ $C$. Если да, число вхождений пары $CD$ увеличивается на единицу.$$count \mathrel{+}= 1$$

Ещё 2 қадам — толық шешімде

Шешім полностьюЖауапШешу самому4 қадам в разборе
144ФИПИ CE2CF3№ 24Күрделі

Максимум пар согласная гласная

Текстовый файл состоит из символов $A$, $B$, $C$, $D$ и $U$. Определите максимальное количество идущих подряд пар символов вида «согласная + гласная» в прилагаемом файле. Для выполнения этого…

  1. 1
    В файле считаем символы $B$, $C$ и $D$ согласными, а символы $A$ и $U$ — гласными.
  2. 2
    Последовательно просматриваем файл слева направо и проверяем каждую пару соседних символов на соответствие шаблону «согласная + гласная».

Ещё 2 қадам — толық шешімде

Шешім полностьюЖауапШешу самому4 қадам в разборе
145ФИПИ CF38C4№ 24Күрделі

Максимальное арифметическое выражение

Текстовый файл состоит из цифр 0, 2, 3, 4, 5 и знаков арифметических операций «−» и «*» (вычитание и умножение). Определите максимальное количество символов в непрерывной последовательности, которая…

  1. 1
    Из файла выделяются непрерывные фрагменты, в которых цифры образуют неотрицательные числа, между соседними числами находится ровно один знак «−» или «*».
  2. 2
    Фрагменты, содержащие два знака подряд, многозначные числа с ведущим нулём или число 0 со знаком, не являются корректными выражениями.

Ещё 1 қадам — толық шешімде

Шешім полностьюЖауапШешу самому3 қадам в разборе
146ФИПИ D6DFe2№ 24Жоғары

Іздеу последовательности в файле

Текстовый файл состоит из десятичных цифр и заглавных букв латинского алфавита. Определите в прилагаемом файле максимальное количество идущих подряд символов, среди которых подстрока 2025…

  1. 1
    Считаем позиции начала всех вхождений подстроки 2025. Вхождения могут пересекаться, поэтому проверяем каждую позицию строки.
  2. 2
    Построим префиксные суммы количества букв Y и количества вхождений 2025. Для фрагмента [l, r] число букв Y вычисляется за O(1).

Ещё 2 қадам — толық шешімде

Шешім полностьюЖауапШешу самому4 қадам в разборе
147ФИПИ DD0C38№ 24Күрделі

Минимальный фрагмент с W

Текстовый файл состоит из символов $T$, $U$, $V$, $W$, $X$, $Y$ и $Z$. Определите в прилагаемом файле минимальное количество идущих подряд символов (длину непрерывной подпоследовательности), среди…

  1. 1
    Считываем строку из файла и рассматриваем её как последовательность символов.
  2. 2
    Двигаем правую границу окна слева направо. При встрече символа $W$ увеличиваем счётчик символов $W$.$$count_W \mathrel{+}= 1$$

Ещё 2 қадам — толық шешімде

Шешім полностьюЖауапШешу самому4 қадам в разборе
148ФИПИ E74424№ 24Күрделі

Максимальная чередующаяся последовательность

Текстовый файл состоит из заглавных букв латинского алфавита Q, R, W и цифр 1, 2, 4. Определите в прилагаемом файле максимальное количество идущих подряд символов, среди которых ни одна буква не…

  1. 1
    Условие выполняется, если каждый следующий символ имеет тип, отличный от типа предыдущего: после буквы должна идти цифра, а после цифры — буква.
  2. 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 қадам — толық шешімде

Шешім полностьюЖауапШешу самому3 қадам в разборе
149ФИПИ F04010№ 24Күрделі

Минимальная подпоследовательность с Y

Текстовый файл состоит из символов $T$, $U$, $V$, $W$, $X$, $Y$ и $Z$. Определите в прилагаемом файле минимальное количество идущих подряд символов (длину непрерывной подпоследовательности), среди…

  1. 1
    Считываем содержимое приложенного файла как строку.
  2. 2
    Двигаем правую границу окна по строке и подсчитываем количество символов $Y$ внутри окна.$$count_Y \geq 260$$

Ещё 2 қадам — толық шешімде

Шешім полностьюЖауапШешу самому4 қадам в разборе
150ФИПИ 087707№ 25Күрделі

Сумма соседних разностей массива

В программе используется одномерный целочисленный массив $A$ с индексами от 0 до 10. Фрагмент программы вычисляет значение переменной $s$ по формуле $s = s + A[i] - A[i+1]$ при $i$ от 0 до 9. В…

  1. 1
    Цикл выполняется для $i$ от 0 до 9, поэтому переменная $s$ получает сумму он соседних разностей.$$s=(A[0]-A[1])+(A[1]-A[2])+\dots+(A[9]-A[10])$$
  2. 2
    Слагаемые с промежуточными элементами взаимно сокращаются.$$s=A[0]-A[10]$$

Ещё 1 қадам — толық шешімде

Шешім полностьюЖауапШешу самому3 қадам в разборе
151ФИПИ 08CA7D№ 25Күрделі

Подсчёт обменов в массиве

В программе используется одномерный целочисленный массив $A$ с индексами от $0$ до $9$. Значения элементов равны $5$, $8$, $4$, $3$, $7$, $9$, $6$, $2$, $0$, $1$ соответственно, то есть $A[0]=5$…

  1. 1
    Изначально $A[9]=1$, а $c=0$. При $i=0$: $A[0]=5>1$, поэтому выполняется обмен и $c$ становится равным $1$. Теперь $A[9]=5$.$$c=1$$
  2. 2
    При $i=1$: $A[1]=8>5$, выполняется обмен и $c$ становится равным $2$. Теперь $A[9]=8$.$$c=2$$

Ещё 3 қадам — толық шешімде

Шешім полностьюЖауапШешу самому5 қадам в разборе
152ФИПИ 1B43D2№ 25Күрделі

Минимум среди чётных элементов

Дан целочисленный массив из 30 элементов. Элементы массива могут принимать натуральные значения от 1 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит…

  1. 1
    Для поиска минимума среди чётных элементов задаём начальное значение k, большее любого допустимого элемента массива.$$k = 10001$$
  2. 2
    Просматриваем все элементы массива. Если элемент чётный и меньше текущего значения k, сохраняем его в k.$$a[i] \bmod 2 = 0 \land a[i] < k \Rightarrow k := a[i]$$

Ещё 2 қадам — толық шешімде

Шешім полностьюЖауапШешу самому4 қадам в разборе
153ФИПИ 1B61EA№ 25Күрделі

Замена элементов массива

Дан целочисленный массив из 30 элементов. Элементы массива могут принимать натуральные значения от 1 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит…

  1. 1
    Выберем первый элемент массива, не делящийся нацело на 5, в качестве начального значения минимума.$$a[i] \mathbin{\%} 5 \ne 0$$
  2. 2
    Просмотрим массив и обновим минимум, если найдём меньший элемент, не делящийся на 5.$$j = \min\{a[i]\mid a[i] \mathbin{\%} 5 \ne 0\}$$

Ещё 2 қадам — толық шешімде

Шешім полностьюЖауапШешу самому4 қадам в разборе
154ФИПИ 1D695E№ 25Жоғары

Максимальная сумма подпоследовательности

Дана последовательность из $N$ натуральных чисел. Рассматриваются все её непрерывные подпоследовательности, такие что сумма элементов каждой из них кратна $k = 61$. Найдите среди них…

  1. 1
    Введём префиксные суммы $S_0 = 0$ и $S_i = a_1 + a_2 + \ldots + a_i$. Сумма подпоследовательности с номерами от $l+1$ до $r$ равна $S_r - S_l$.
  2. 2
    Эта сумма кратна $61$ тогда и только тогда, когда $S_r$ и $S_l$ имеют одинаковые остатки при делении на $61$.

Ещё 3 қадам — толық шешімде

Шешім полностьюЖауапШешу самому5 қадам в разборе
155ФИПИ 20BCB1№ 25Күрделі

Сумма соседних разностей массива

В программе используется одномерный целочисленный массив $A$ с индексами от 0 до 10. Фрагмент программы вычисляет значение переменной $s$ по формуле $s := s + A[i] - A[i+1]$ при изменении $i$ от 0…

  1. 1
    Цикл выполняется для $i = 0, 1, \dots, 9$, поэтому переменная $s$ равна сумме соседних разностей.$$s=(A[0]-A[1])+(A[1]-A[2])+\dots+(A[9]-A[10])$$
  2. 2
    Все промежуточные элементы сокращаются: $-A[1]+A[1}$, $-A[2]+A[2]$ и так далее.$$s=A[0]-A[10]$$

Ещё 1 қадам — толық шешімде

Шешім полностьюЖауапШешу самому3 қадам в разборе
156ФИПИ 2B1A9F№ 25Күрделі

Замена чётных элементов массива

Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от −10 000 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит…

  1. 1
    Для хранения максимального чётного элемента используем переменную j. Начальное значение −10001 меньше любого возможного элемента массива.$$j = -10001$$
  2. 2
    Первым циклом просматриваем массив и обновляем максимум только для чётных элементов.$$a[i] \bmod 2 = 0 \land a[i] > j \Rightarrow j = a[i]$$

Ещё 2 қадам — толық шешімде

Шешім полностьюЖауапШешу самому4 қадам в разборе
157ФИПИ 2BC7E7№ 25Күрделі

Обработка массива обменами

В программе используется одномерный целочисленный массив $A$ с индексами от 0 до 9. Значения элементов равны 9, 13, 10, 3, 1, 7, 0, 4, 5, 12 соответственно, то есть $A[0] = 9$, $A[1] = 13$ и так…

  1. 1
    Начинаем с массива $[9, 13, 10, 3, 1, 7, 0, 4, 5, 12]$ и $c = 0$. При $i = 1$ выполняется условие $9 < 13$, поэтому $c = 1$.
  2. 2
    При $i = 2$ после предыдущего обмена выполняется условие $9 < 10$, поэтому $c = 2$.

Ещё 4 қадам — толық шешімде

Шешім полностьюЖауапШешу самому6 қадам в разборе
158ФИПИ 2BF795№ 25Күрделі

Обработка массива циклом

В программе используется одномерный целочисленный массив $A$ с индексами от $0$ до $9$. Значения элементов массива равны $20$, $19$, $17$, $41$, $15$, $42$, $24$, $56$, $4$, $13$ соответственно…

  1. 1
    В начале $s=0$, а $A[4]=15$. При $i=0$: $20 \geq 15$, поэтому к $s$ прибавляется $20 \bmod 15=5$. После обмена $A[4]=20$.$$s=5$$
  2. 2
    При $i=1$ и $i=2$ условие не выполняется: $19<20$ и $17<20$.

Ещё 4 қадам — толық шешімде

Шешім полностьюЖауапШешу самому6 қадам в разборе
159ФИПИ 2D6EE5№ 25Күрделі

Сумма соседних разностей массива

В программе используется одномерный целочисленный массив $A$ с индексами от $0$ до $10$. Фрагмент программы выполняет следующие действия: $s := 0$, $n := 10$; для $i$ от $0$ до $n-1$ вычисляется…

  1. 1
    Цикл выполняется для $i$ от $0$ до $9$, поэтому к переменной $s$ добавляется сумма соседних разностей:$$s=(A[0]-A[1])+(A[1]-A[2])+\dots+(A[9]-A[10])$$
  2. 2
    При раскрытии суммы все промежуточные значения массива сокращаются.$$s=A[0]-A[10]$$

Ещё 1 қадам — толық шешімде

Шешім полностьюЖауапШешу самому3 қадам в разборе
160ФИПИ 332FD5№ 25Күрделі

Замена нечётных элементов массива

Дан целочисленный массив из 30 элементов. Элементы массива могут принимать натуральные значения от 1 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит…

  1. 1
    Сначала заведём переменную s для суммы подходящих элементов и обнулим её.
  2. 2
    Первым проходом просмотрим все 30 элементов. Если элемент не больше 197 и нечётен, добавим его к сумме.$$a[i] \leq 197 \land a[i] \bmod 2 = 1$$

Ещё 4 қадам — толық шешімде

Шешім полностьюЖауапШешу самому6 қадам в разборе