Задача №1698. Гомо или гетеро? Максимальное время работы на одном тесте:

3 секунды

Максимальный объем используемой памяти:

256 мегабайт

Определим две операции над списком целых чисел:

insert number – добавляет заданное число в конец списка
delete number – удаляет первое вхождение заданного числа из списка. Если список не содержит заданного числа, то ничего не меняется.
Например, результатом добавления числа 4 в список [1, 2, 1] будет список [1, 2, 1, 4]. Если мы удалим число 1 из этого списка, то получим список [2, 1, 4], но если мы попытаемся удалить число 3 из списка [1, 2, 1, 4], то список останется неизменным.

Список называется гомогенным, если он содержит хоты бы два одинаковых числа и гетерогенным, если содержит хотя бы два различных числа. Например, список [2, 2] является гомогенным, список [2, 1, 4] – гетерогенным, список [1, 2, 1, 4] – одновременно и тем и другим, а пустой список не является ни гомогенным, ни гетерогенным.

Напишите программу, которая по последовательности операций добавления и удаления в пустой список, определяет после каждой из операций, является ли список гомогенным или гетерогенным.

Формат входных данных

Первая строка содержит целое число n – количество операций (1 ≤ n ≤ 100 000).

Следующие n строк содержат описания операций. Каждая операция описывается словом “insert” или “delete” и числом k – аргументом операции (-109 ≤ k ≤ 109).

Формат выходных данных

Для каждой операции выведите строку, содержащую единственное слово, описывающее состояние списка после этой операции:

“both” - если список одновременно является и тем и другим
“hetero” - если список является гетерогенным
“homo” - если список является гомогенным
“neither” - если список не принадлежит ни одному типу.

Мыркпвы Мыркпвы    1   03.01.2022 21:03    33

Другие вопросы по теме Информатика