Понимаю задачу. Нужно посчитать, сколько из попыток Васи были неверными и при этом имели такую же длину, как и правильный код. Последняя попытка в списке — это верный код, поэтому ее учитывать не надо.
Пошаговое решение (логика)
- Пусть первая строка входа — правильный код (со строками цифр). Остальные строки — попытки, последняя из них — верный код.
- Пройдёмся по всем попыткам, кроме последней.
- Для каждой попытки считаем её длину: если она равна длине правильного кода и сама попытка не совпадает с правильным кодом, то увеличиваем счётчик.
- Выведем полученный счётчик.
Сложность: O(n) по числу попыток, память — O(1) помимо входных данных.
Пример реализации (Python)
# Чтение входных данных: первая строка - правильный код, остальные - попытки.
lines = [line.strip() for line in __import__('sys').stdin]
if not lines:
print(0)
else:
correct_code = lines[0]
attempts = lines[1:]
count = 0
# Рассматриваем все попытки кроме последней (которая верная)
for att in attempts[:-1]:
if len(att) == len(correct_code) and att != correct_code:
count += 1
print(count)
Пояснение к примеру
- Ввод: 12345 123 22344 12345
- Правильный код: "12345", попытки: ["123", "22344", "12345"].
- Рассматриваем "123" (длина 3 ≠ 5 — не считаем), "22344" (длина 5 и не равен правильному — считаем), последняя "12345" — верная и не учитывается.
- Ответ: 1
Дополнительные примеры
- Ввод: 0000 000 0000
- Здесь только попытка "000" имеет другую длину и не считается. Правильный код — последняя строка, но мы её не считаем. Ответ: 0.
Если хочешь, могу адаптировать решение под другой язык программирования (Java, C++, JavaScript и т.д.).