Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3565971
А
Аноним
12 февраля 2026 07:04 · публичный вопрос
А
Аноним

Дано число N и N строк с именами. Затем записана ещё одна строка с именем. Программа должна вывести "ДА", если это имя есть среди N строк, иначе вывести "НЕТ". Ввод Вывод 5 Паша…

Запрос пользователя

Дано число N и N строк с именами. Затем записана ещё одна строка с именем. Программа должна вывести "ДА", если это имя есть среди N строк, иначе вывести "НЕТ". Ввод Вывод 5 Паша Нина Оля Коля Рома Оля ДА

Ответ нейросети
12 февраля 2026 07:04

Ниже подробное решение задачи с пошаговым объяснением и примером кода на Python.

Что нужно сделать

  • Вводится целое N.
  • Затем идут N имен (строки).
  • Затем следует одно имя, которое нужно проверить.
  • Нужно вывести "ДА", если искомое имя встречается среди первых N имен, иначе вывести "НЕТ".

Пошаговое объяснение

  1. Считать число N.
  2. Считать N имен и сохранить их в структуру, позволяющую быстро проверить принадлежность. Лучший выбор — множество (set), потому что проверка наличия элемента в set быстрая.
  3. Считать искомое имя.
  4. Если имя есть в наборе — вывести "ДА", иначе вывести "НЕТ".
  5. Учесть, что дубликаты имен в списке не меняют результат (проверка по множеству игнорирует повторения).

Математическая/логическая часть

  • Время работы: O(N) на чтение и заполнение набора плюс O(1) в среднем на проверку принадлежности.
  • Память: O(N) для хранения имен в наборе.
  • Примечание по входу: предполагаем, что имена — это одиночные слова без пробелов. Если бы имена могли содержать пробелы, пришлось бы читать построчно и не использовать разделение по пробелам.

Пример решения на Python (подход с множеством)

  • Этот подход корректен для стандартных вариантов задач, где имена вводятся как отдельные слова.

Пример кода (Python 3):

  • Пример реализует описанный алгоритм и соответствует формату вывода "ДА"/"НЕТ".

Решение на Python

import sys

def main(): data = sys.stdin.read().split() if not data: return n = int(data[0]) # Сохраняем N имен в множество names = set(data[1:1+n]) # Имя для проверки query = data[1+n] print("ДА" if query in names else "НЕТ")

if name == "main": main()

Пояснение по коду

  • data = sys.stdin.read().split() считывает всё входное и разбивает на токены по пробелам и переносам строк.
  • n = int(data[0]) — размер первой части.
  • data[1:1+n] — список из N имен.
  • data[1+n] — искомое имя.
  • print("ДА" если условие истинно, иначе "НЕТ").

Пример с данными из задачи Ввод: 5 Паша Нина Оля Коля Рома Оля Вывод: ДА

Если у вас будут дополнительные ограничения (например, нужно обрабатывать имена с пробелами или ввод через построчное чтение), скажите — адаптирую решение под них.