Задача понятна: считать количество фамилий до слова СТОП (само слово СТОП не входит в подсчет).
Пошаговое решение
- Шаг 1. Читай последовательность построчно до тех пор, пока не встретишь строку со словом СТОП.
- Шаг 2. Каждый раз, когда встречаешь строку с фамилией (то есть не СТОП), увеличивай счетчик на 1.
- Шаг 3. Как только встретишь СТОП, остановись и выведи счетчик.
- Примечание: для надежности можно обрезать пробелы по краям строк (strip) и сравнивать строку именно с "СТОП" в нужной раскладке. В примере используется точное сравнение с СТОП.
Пояснение на примере
- Ввод: Иванов Петрова Сидорова
- Обработаем по порядку: Иванов → счетчик = 1 Петрова → счетчик = 2 Сидорова → счетчик = 3 СТОП → остановка
- Вывод: 3
Алгоритм (структура)
- Инициализировать счетчик count = 0.
- Для каждой строки line:
- s = line.strip()
- Если s == "СТОП": выйти из цикла
- Если s не пустая строка: count += 1
- Вывести count.
Сложность
- Временная: O(n), где n — количество строк до СТОП.
- Дополнительной памяти: O(1) (только счетчик).
Пример реализации на Python (вариант с чтением из входа)
- Введите весь ввод построчно; выводите количество фамилий до слова СТОП.
import sys
count = 0 for line in sys.stdin: s = line.strip() if s == "СТОП": break if s: count += 1
print(count)
Дополнительные заметки
- Если хотите сделать сравнение нечувствительным к регистру, можно использовать: if s.upper() == "СТОП": и аналогично для ожидания фамилий без зависимости от регистра.
- Если вдруг вход не содержит СТОП, решение можно адаптировать, чтобы выводить count после завершения чтения всего ввода; по условию задачи это не требуется.