Киньте в личку Задача №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” - если список не принадлежит ни одному типу.
Три варианта для обеда, три варианта для десерта.
Возможных вариаций - 9(1-1,1-2,1-3,2-1,2-2,2-3,3-1,3-2,3-3).
ответ: 9
P.S. - График предоставить могу, но мне, если честно, лень его чертить, сканировать и выкладывать для такой простенькой задачи. Поэтому предоставляю тебе альтернативный вариант:
1)Чертишь три прямоугольника
2)Отводишь от каждого из них по три стреолчки
3)На концах стрелочек чертишь еще три треугольника. В нижней строке должно получиться 9 прямоугольников.
4)Записываешь в каждый, по очереди, каждую из приведенных мной выше вариаций.
Сместиться на (1, 3) - оказываемся в (1, 3)
Сместиться на (1, -2) - прибавляем к (1, 3) + (1, -2) = (2,1)
кц, в условии сказано что это надо повторить 2раза значит умножаем на 2 = (4,2)
Сместиться на (2, 6) - прибавляем (2, 6) = (6,8)
(6,8) это точка в которой мы окажемся в конце программы, теперь нам надо чтобы чертежник перешёл в начальную точку (0 0), чтобы сделать это мы должны от (6,8)
отнять (6,8), другими словами к (6,8) прибавить (-6,-8).
ответ: (-6,-8) - это первый вариант. В ответе пишем 1