Олимпиадный тренинг

Задача . 03. Редактор плейлиста


Задача

Темы:

Реализуйте редактор плейлиста. Изначально он пуст. Треки представлены целыми идентификаторами, которые могут повторяться. Индексы начинаются с нуля. Каждая команда выдаёт ровно одну строку ответа.

Команды

КомандаДействие и ответ
ADD xДобавить x в конец. Ответ OK.
INSERT i xВставить x на индекс i. При 0 ≤ i ≤ текущего размера ответ OK, иначе ERROR.
SET i xЗаменить значение по существующему индексу i. Ответ OK или ERROR.
REMOVE iУдалить элемент по существующему индексу i. Ответ OK или ERROR.
GET iВывести значение по существующему индексу i, иначе ERROR.
FIND xВывести индекс первого x; если x отсутствует, вывести −1.
COUNTВывести число треков.
PRINTВывести весь плейлист по порядку или EMPTY.

Входные данные

Первая строка содержит q. Далее записаны q команд, по одной в строке.

Выходные данные

Для каждой команды выведите ответ из таблицы. Ошибочная команда не меняет плейлист. В PRINT значения разделяются одним пробелом.

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

Ограничения

1 ≤ q ≤ 5000; значения x и индексы i — целые числа от −10⁹ до 10⁹. Суммарное количество идентификаторов во всех ответах PRINT не превышает 200000.


Примеры
№Входные данныеВыходные данные
1
12
ADD 40
ADD 40
INSERT 1 9
FIND 40
GET 1
SET 2 7
REMOVE 0
PRINT
COUNT
GET 2
FIND 40
PRINT
OK
OK
OK
0
9
OK
OK
9 7
2
ERROR
-1
9 7
2
8
PRINT
INSERT 0 5
INSERT 2 9
SET -1 3
REMOVE 0
GET 0
FIND 5
COUNT
EMPTY
OK
ERROR
ERROR
OK
ERROR
-1
0
Статистика успешных решений по компиляторам
 Кол-во
C#10
Комментарий учителя