Найти в Дзене

Задача 534. Клавиатура - 2

Разберём ещё одну задачу с регионального этапа Всероссийской олимпиады школьников и поймём, что в ней нет ничего сложного. Читаем условие: Идейно, здесь базовая работа с массивами: Сразу покажу решение, а дальше разберём его особенности: Нам не нужно знать размеры массивов, поэтому в 1 и 3 строках не объявляем никаких переменных, а просто считываем данные вникуда. Также, по массиву p надо пройти всего один раз, поэтому не будем его хранить в отдельной переменной, а сразу запустим по нему (точнее по итератору) цикл в 4ой строке. К элементам массива c нам надо обращаться по индексу, поэтому его честно считываем и сохраняем. А в цикле вычитаем по единичке. Не забываем, что индексы в массивах начинаются с 0, а в задаче клавиши нумеруются с 1, поэтому при обращении к элементам массива c по индексы надо вычитать единичку. После работы цикла, в массиве c будут лежать числа с количеством нажатий, которые выдержат клавиши после указанной в задаче последовательности нажатий. А если клавиша уже с

Разберём ещё одну задачу с регионального этапа Всероссийской олимпиады школьников и поймём, что в ней нет ничего сложного. Читаем условие:

Условие задачи с сайта acmp.ru
Условие задачи с сайта acmp.ru

Идейно, здесь базовая работа с массивами:

  • считать массив (два),
  • пройтись по второму массиву,
  • вычесть в соответствующем индексе первого массива единичку,
  • вывести последовательность слов.

Сразу покажу решение, а дальше разберём его особенности:

Полное решение задачи
Полное решение задачи

Нам не нужно знать размеры массивов, поэтому в 1 и 3 строках не объявляем никаких переменных, а просто считываем данные вникуда.

Также, по массиву p надо пройти всего один раз, поэтому не будем его хранить в отдельной переменной, а сразу запустим по нему (точнее по итератору) цикл в 4ой строке.

К элементам массива c нам надо обращаться по индексу, поэтому его честно считываем и сохраняем. А в цикле вычитаем по единичке.

Не забываем, что индексы в массивах начинаются с 0, а в задаче клавиши нумеруются с 1, поэтому при обращении к элементам массива c по индексы надо вычитать единичку.

После работы цикла, в массиве c будут лежать числа с количеством нажатий, которые выдержат клавиши после указанной в задаче последовательности нажатий. А если клавиша уже сломалась, то число будет отрицательным.

Преобразуем числа в слова "yes" и "no", создав новый списов с помощью генератора. И соединим их в одну строку, разделяя символом переноса строки.

Задачу можно решить ещё проще, без использования изысков языка. Но я считаю, что именно на простых задачах полезно отрабатывать инструментарий языка, чтобы потом с лёгкостью использовать его в сложных алгоритмах.

Предыдущий выпуск: Задача 510. Шоколадка

Задонатить автору на бусти.

Я очень хочу, чтобы мои советы были полезны вам, а для того, чтобы быстрее всех получать новые статьи можно подписаться на мой канал.