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

Задача . 08. Учёт остатков на складе


Задача

Темы:

Изначально склад пуст. Приход увеличивает запас товара. Выдача разрешена, только если запас не меньше запрошенного количества. При отказе запас не меняется. Нулевой запас и отсутствие товара дают одинаковый ответ на запрос STOCK.

Команды

КомандаДействие и ответ
ARRIVE id amountУвеличить запас на amount. Ответ OK.
TAKE id amountУменьшить запас на amount, если его достаточно: OK. Иначе REJECTED.
STOCK idВывести текущий запас или 0, если товара нет.

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

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

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

Выведите по одной строке ответа на каждую команду согласно таблице.

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

Ограничения

1 ≤ q ≤ 100000; идентификатор id от 1 до 10⁹; количество amount от 1 до 10⁹. Накопленный запас может превышать 2³¹ − 1.


Примеры
№Входные данныеВыходные данные
1
8
STOCK 10
ARRIVE 10 5
TAKE 10 6
STOCK 10
TAKE 10 5
STOCK 10
TAKE 20 1
STOCK 20
0
OK
REJECTED
5
OK
0
REJECTED
0
2
5
ARRIVE 7 1000000000
ARRIVE 7 1000000000
ARRIVE 7 1000000000
TAKE 7 1
STOCK 7
OK
OK
OK
OK
2999999999
Статистика успешных решений по компиляторам
 Кол-во
C#3
Комментарий учителя