Текстовый файл состоит из символов $A$, $B$ и $C$. Определите максимальное количество идущих подряд пар символов $AB$ или $CB$ в прилагаемом файле. Искомая подпоследовательность должна состоять…
- 1
Файл последовательно просматривается слева направо. Допустимой считается пара, в которой первый символ равен $A$ или $C$, а второй символ равен $B$.$$pair[i] \in \{AB, CB\}$$
- 2
Для каждой допустимой пары увеличиваем длину текущей цепочки. Если пара не подходит, текущую цепочку начинаем заново.$$current = current + 1\text{ при }pair[i]\in\{AB,CB\};\quad current=0\text{ иначе}$$
Ещё 1 шаг — в полном решении
Текстовый файл состоит из заглавных букв латинского алфавита $A$, $B$, $C$, $D$, $E$ и $F$. Определите максимальное количество идущих подряд символов в прилагаемом файле, среди которых пара символов…
- 1
Считываем строку из файла и рассматриваем её как последовательность символов.
- 2
Расширяем правую границу текущего фрагмента. При добавлении символа проверяем, образовалась ли в конце фрагмента пара $AB$.$$if\ s[r-1:r+1] = AB:\quad cnt \mathrel{+}= 1$$
Ещё 3 шага — в полном решении
Задание выполняется с использованием прилагаемых файлов. Текстовый файл состоит из цифр 0, 7, 8, 9 и знаков арифметических операций «–» и «*» (вычитание и умножение). Определите максимальное…
- 1
Корректное выражение должно состоять из одного или нескольких неотрицательных целых чисел, разделённых знаками «–» или «*». Поэтому оно начинается и заканчивается цифрой, а два знака операций подряд недопустимы.
- 2
При просмотре файла последовательно выделяем максимальные фрагменты, в которых соблюдаются правила записи чисел: число 0 может быть только однозначным, а многозначное число не начинается с нуля.
Ещё 2 шага — в полном решении
На обработку поступает натуральное число, не превышающее $10^9$. Нужно написать программу, которая выводит на экран количество цифр этого числа, делящихся на 3. Если в числе нет цифр, делящихся на…
- 1
При вводе числа 145 программа последовательно рассматривает цифры 5, 4 и 1. Ни одна из них не делится на 3.
- 2
Переменная count изначально равна 1 и не изменяется. Поэтому условие count == 0 ложно, и программа выводит число 1.
Ещё 4 шага — в полном решении
Текстовый файл состоит из символов A, C, D, E и F. Определите максимальное количество идущих подряд пар символов вида «гласная + согласная» в прилагаемом файле. Для выполнения этого задания следует…
- 1
Разобьём символы файла на пары соседних символов, начинающиеся с позиций 0, 2, 4 и так далее. Пара подходит, если первый символ — A или E, а второй — C, D или F.
- 2
При последовательном просмотре файла будем хранить количество подходящих пар подряд. Если очередная пара не подходит, текущую серию обнуляем; одновременно сохраняем максимальное значение.$$current = current + 1\text{ при подходящей паре; иначе }current = 0$$
Ещё 1 шаг — в полном решении
Требовалось написать программу, которая получает на вход натуральное число $N$, не превосходящее $10^9$, и выводит число, равное количеству цифр 2 в десятичной записи числа $N$. Программист написал…
- 1
При вводе 324 цикл последовательно выделяет цифры справа налево: сначала 4, затем 2, затем 3. После обработки цифры 3 число N становится равным 0, и цикл завершается.$$d: 4 \to 2 \to 3$$
- 2
В исходной программе переменная R увеличивается для цифр, не равных 2. Для числа 324 она станет равна 2, поскольку цифры 4 и 3 не равны 2. Однако программа выводит не R, а последнее значение d, то есть 3.$$R = 2,\quad d = 3$$
Ещё 3 шага — в полном решении
Текстовый файл состоит из заглавных букв латинского алфавита $A$, $B$, $C$, $D$, $E$ и $F$. Определите в прилагаемом файле максимальное количество идущих подряд символов, среди которых пара $AB$ (в…
- 1
Считываем всю строку из прилагаемого файла и рассматриваем каждый возможный непрерывный фрагмент.
- 2
Для каждого фрагмента подсчитываем количество соседних пар $AB$. Пара учитывается при каждом индексе $i$, если предыдущий символ равен $A$, а текущий — $B$.$$s[i-1] = A \land s[i] = B$$
Ещё 2 шага — в полном решении
Задание выполняется с использованием прилагаемых к заданию файлов. Текстовый файл состоит не более чем из 1 200 000 символов $P$, $Q$, $R$ и $S$. Определите максимальное количество идущих подряд…
- 1
Последовательность должна не содержать двух символов $R$, стоящих рядом. Поэтому достаточно просматривать файл слева направо и проверять каждую соседнюю пару символов.
- 2
Если очередная пара равна $RR$, текущий допустимый фрагмент заканчивается, и поиск нового фрагмента начинается после второго символа $R$.
Ещё 1 шаг — в полном решении
Текстовый файл состоит из заглавных букв латинского алфавита $A$, $B$, $C$, $D$, $E$ и $F$. Определите максимальное количество идущих подряд символов в прилагаемом файле, среди которых пара символов…
- 1
Считываем строку из файла и рассматриваем все её непрерывные фрагменты.
- 2
Для эффективного поиска используем два указателя. При расширении правой границы увеличиваем счётчик, если добавленная соседняя пара образует $CD$.
Ещё 2 шага — в полном решении
На обработку поступает натуральное число, не превышающее $10^9$. Нужно написать программу, которая выводит сумму цифр числа, не кратных 3. Если в числе нет цифр, не кратных 3, требуется вывести…
- 1
При вводе числа 645 цифры извлекаются справа налево: сначала 5, затем 4, затем 6.
- 2
Сначала выполняется `sum = N % 10`, поэтому sum получает значение 5. Цифра 5 не кратна 3, и затем sum снова получает значение 5.
Ещё 5 шагов — в полном решении
На обработку поступает натуральное число, не превышающее $10^9$. Нужно написать программу, которая выводит на экран минимальную чётную цифру этого числа. Если в числе нет чётных цифр, требуется…
- 1
При вводе 231 сначала выполняется присваивание minDigit = 231 % 10, поэтому minDigit получает значение 1.$$231 \bmod 10 = 1$$
- 2
Затем программа рассматривает цифры 1, 3 и 2. Цифра 2 чётная, но условие 2 < 1 ложно, поэтому значение minDigit не изменяется. В конце проверка minDigit == 0 также ложна, и программа выводит 1.
Ещё 3 шага — в полном решении
Требовалось написать программу, которая решает неравенство $ax+b>0$ относительно $x$ для любых действительных чисел $a$ и $b$, введённых с клавиатуры. Программист написал программу неправильно. В…
- 1
Выберем $a=-1$, $b=2$, $x=3$. Исходное неравенство принимает вид $-x+2>0$, то есть $x<2$.$$-x+2>0\Longleftrightarrow x<2$$
- 2
Программа при любом $a\ne0$ выводит $x>-b/a$. В выбранном примере она выведет $x>2$, что неверно: при делении на отрицательное число знак неравенства меняется.$$-\dfrac{b}{a}=-\dfrac{2}{-1}=2$$
Ещё 3 шага — в полном решении
На обработку поступает натуральное число, не превышающее $10^9$. Нужно написать программу, которая выводит на экран максимальную цифру числа, кратную 5. Если цифр, кратных 5, в числе нет, требуется…
- 1
При вводе числа 108 программа последовательно рассматривает цифры 8, 0 и 1. Цифра 8 не делится на 5, цифра 0 делится на 5, но условие `digit > maxDigit` при `maxDigit = 0` ложно. Поэтому значение `maxDigit` остаётся равным 0. В конце…
- 2
Следовательно, исходная программа при вводе 108 выводит `NO`, хотя правильным ответом является 0.
Ещё 4 шага — в полном решении
Текстовый файл состоит из цифр 0, 4, 5, 6, 7 и знаков арифметических операций «–» и «*» (вычитание и умножение). Определите максимальное количество символов в непрерывной последовательности, которая…
- 1
Корректное выражение должно начинаться с цифры и далее состоять из чередующихся чисел и знаков «–» или «*». Поэтому два знака подряд недопустимы.
- 2
При проверке каждого фрагмента учитываем правила записи чисел: многозначное число не может начинаться с нуля, а число 0 не может иметь знак.
Ещё 1 шаг — в полном решении
Задание выполняется с использованием прилагаемых к заданию файлов. Текстовый файл состоит не более чем из 1 200 000 символов X, Y и Z. Определите максимальное количество идущих подряд символов…
- 1
Нужно найти самый длинный фрагмент строки, в котором не встречается XZZY. При последовательном просмотре достаточно отслеживать последнее положение окончания найденной подстроки XZZY.
- 2
Если подстрока XZZY заканчивается в позиции i, то новый допустимый фрагмент может начинаться только после предыдущего вхождения. Для поиска вхождений удобно проверять последние четыре символа строки.
Ещё 2 шага — в полном решении
Текстовый файл состоит из десятичных цифр и заглавных букв латинского алфавита. Определите в прилагаемом файле последовательность из максимального количества идущих подряд символов, среди которых…
- 1
Считываем содержимое файла и рассматриваем каждую позицию с чётной цифрой как возможное начало последовательности.
- 2
Для каждого начала идём вправо до символа перед следующей чётной цифрой. Одновременно подсчитываем длину последовательности и количество букв W.
Ещё 2 шага — в полном решении
На обработку поступает натуральное число, не превышающее $10^9$. Программа должна вывести максимальную цифру числа, кратную 3. Если цифр, кратных 3, в числе нет, требуется вывести «NO». Известно…
- 1
При вводе 105 программа последовательно рассматривает цифры 5, 0 и 1. Цифра 0 кратна 3, но переменная maxDigit изначально равна 0, поэтому условие digit > maxDigit для цифры 0 ложно.
- 2
После обработки всех цифр значение maxDigit остаётся равным 0. Проверка maxDigit > 0 также ложна, поэтому программа выводит NO.
Ещё 3 шага — в полном решении
Задание выполняется с использованием прилагаемых файлов. Текстовый файл состоит из символов $A$, $B$ и $D$. Определите максимальное количество идущих подряд пар символов $AB$ или $AD$ в прилагаемом…
- 1
Последовательность состоит из неперекрывающихся пар. Подходящей считается пара, в которой первый символ — $A$, а второй — $B$ или $D$.
- 2
Файл просматривается слева направо. Для каждой подходящей пары увеличиваем счётчик текущей серии на единицу и пропускаем оба символа пары.
Ещё 2 шага — в полном решении
Текстовый файл состоит из десятичных цифр и заглавных букв латинского алфавита. Определите в прилагаемом файле минимальное количество идущих подряд символов, среди которых подстрока 2025 встречается…
- 1
Считать содержимое файла в строку s.
- 2
Для каждой позиции определить, начинается ли в ней подстрока 2025, а также построить префиксные суммы количества букв W.
Ещё 2 шага — в полном решении
Текстовый файл состоит из символов A, B и C. Определите максимальное количество идущих подряд пар символов AC или BC в прилагаемом файле. Искомая подпоследовательность должна состоять только из пар…
- 1
Разобьём проверяемую последовательность на идущие подряд непересекающиеся пары символов.
- 2
Пара является подходящей, если имеет вид AC или BC, то есть её второй символ равен C, а первый символ — A или B.$$pair = (s[i] = A \lor s[i] = B) \land (s[i+1] = C)$$
Ещё 1 шаг — в полном решении