Задача № 2 «Пуск»
Вводится три строки. Если они такие:
3
2
1
или такие:
три
два
один
то нужно вывести: "ПУСК", иначе вывести "ОШИБКА".
Ввод Вывод
3
2
1 ПУСК
Задача понятна: нужно прочитать три строки и проверить, образуют ли они последовательность 3, 2, 1. Допустимы два ввода: цифры "3", "2", "1" или слова "три", "два", "один". Выводить нужно "ПУСК" при совпадении с последовательностью, иначе "ОШИБКА".
Пошаговое решение (для понимания)
- Шаг 1: считaть три строки s1, s2, s3. Каждый ввод взять с учетом возможных пробелов и регистра: обрезать пробелы и привести к нижнему регистру.
- Шаг 2: привести каждую строку к числу:
- если строка состоит из цифр (например, "3"), преобразовать к целому числу.
- иначе если строка совпадает с одним из слов "один"=1, "два"=2, "три"=3, заменить её на соответствующее число.
- если строка не подходит ни под одно из условий, задача считается неверной — выводим "ОШИБКА".
- Шаг 3: после преобразования имеем три числа a, b, c. Сравнить их с последовательностью [3, 2, 1]. Если совпадает — вывести "ПУСК", иначе "ОШИБКА".
- Временная сложность: O(1) — константное число операций, память: O(1).
Пример проверки
- Ввод:
3
2
1
Результат: числа [3, 2, 1] → совпало → вывод: ПУСК
- Ввод:
три
два
один
Результат: числа [3, 2, 1] → совпало → вывод: ПУСК
- Ввод:
1
2
3
Результат: [1, 2, 3] → не совпало → вывод: ОШИБКА
Пример реализации на Python (для иллюстрации)
- Этот код читает три строки, нормализует их и сравнивает с требуемой последовательностью.
def main():
import sys
lines = [sys.stdin.readline().strip() for _ in range(3)]
mapping = {
"один": 1,
"два": 2,
"три": 3
}
nums = []
for s in lines:
t = s.strip().lower()
if t.isdigit():
nums.append(int(t))
elif t in mapping:
nums.append(mapping[t])
else:
print("ОШИБКА")
return
if nums == [3, 2, 1]:
print("ПУСК")
else:
print("ОШИБКА")
if __name__ == "__main__":
main()
Если хочешь, могу привести решение на другом языке (C++, Java) или адаптировать под конкретный формат задач.