В задаче нам гарантируется, что на ввод подаются исключительно числа. При чем даже заданы ограничения с которыми они подаются, так что мы можем избавить себя от их валидации и сразу приступить к обработке.
Перво-наперво, нам необходимо получить количество чисел в последовательности. Для этого просто берем первую строку в стандартном вводе и рассматриваем её как число (1 строка кода).
Затем, нам надо получить все элементы последовательности. Но нам не обязательно работать с ними, как с числами, так как с нас не требуют математических операций. Так что просто оставляем их в виде строк (2 строка кода).
Далее, необходимо убрать все лишние значения (не оканчивающиеся на 3) и оставить только нужные. Для этого используем стандартную функцию filter, в которой проверяем последние символы строк на соответствие "3" (строка кода 3).
Осталось только посчитать количество оставшихся строк и вывести результат (строка кода 4).
Код:
N = int(input())
sequence = [input() for _ in range(N)] # Вводим числа
sequence = list(filter(lambda x: x[-1] == "3", sequence)) # Отсеиваем лишние
print(len(sequence)) # Сколько осталось?
=========================
Если ответ устроил, не забудь отметить его как "Лучший".
10
Объяснение:
Заметим, что в первом уравнении не может встретиться сочетание 10, иначе следование, а значит, и вся конъюнкция даст ложный результат. То есть если где-то встретится единица, то после неё должна идти единица. Значит, первому уравнению удовлетворяют все возможные наборы, где сначала идут нули, а затем — единицы:
0000000000
0000000001
0000000011
...
0111111111
1111111111 — 11 решений.
Рассмотрим второе уравнение. Если x₅ = x₆, то из наборов первого уравнения подходят все, кроме одного, где x₅ = 0, а x₆ = 1. Во всех остальных случаях либо x₅ = x₆ = 0, либо x₅ = x₆ = 1.
Итого система имеет 10 решений.
Поделитесь своими знаниями, ответьте на вопрос: