Контест Senior Исключения обновлено

Пакет переводов со строгой гарантией

Условие

Банк обрабатывает пакеты переводов. Пакет применяется целиком или не применяется вовсе. Перевод a c x снимает x со счёта a и зачисляет на c (возможно a = c). Перевод невозможен, если одного из счетов не существует или на a в этот момент (с учётом предыдущих переводов пакета) меньше x. Если какой-то перевод невозможен, пакет отклоняется, и балансы остаются как до пакета.

Для каждого пакета выведите APPLIED или REJECTED i, где i номер первого невозможного перевода в пакете (с 1). В конце выведите все счета по возрастанию имён с балансами.

Ввод: n (1 ≤ n ≤ 200) и n строк имя баланс, затем число пакетов b (1 ≤ b ≤ 300); каждый пакет: k (1 ≤ k ≤ 20) и k строк a c x. Балансы и суммы до 10⁶.

Вывод: b строк с результатами, затем n строк балансов.

Пример 1

Ввод:

2
ann 100
bob 0
3
2
ann bob 60
bob ann 10
2
ann bob 30
ann bob 30
1
bob bob 71

Вывод:

APPLIED
REJECTED 2
REJECTED 1
ann 50
bob 50

Пример 2

Ввод:

1
x 5
1
1
x x 5

Вывод:

APPLIED
x 5

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.

Термины по теме