C++
товарный поезд
во время поездки по стране товарный поезд останавливается на промежуточных станциях, где к его концу могут быть присоединены вагоны с определенным грузом, от конца может быть отцеплено некоторое количество вагонов или может быть проведена ревизия с подсчетом количества вагонов с определенным грузом.
вам необходимо написать программу, которая будет обрабатывать операции в том порядке, как они производились и отвечать на запросы ревизии.
формат входных данных
в первой строке вводится число n (1 ≤ n ≤ 1) — количество операций.
в каждой из следующих n строк содержится описание операций. каждая операция может иметь один из трех типов:
add "количество вагонов" "название груза" — добавить в конец поезда "количество вагонов" с грузом "название груза". количество вагонов не может превышать 109, название груза — одна последовательность непробельных символов длиной до 20.
delete "количество вагонов" — отцепить от конца поезда "количество вагонов". количество отцепляемых вагонов не превосходит длины поезда.
get "название груза" — определить количество вагонов с грузом "название груза". название груза — одна последовательность непробельных символов длиной до 20.
формат результата
на каждый запрос о количестве вагонов с определенным грузом выведите одно число — количество вагонов с таким грузом. запросы надо обрабатывать в том порядке, как они поступали.
примеры
входные данные
7
add 10 oil
add 20 coal
add 5 oil
get coal
get oil
add 1 coal
get coal
результат работы
20
15
21
входные данные
6
add 5 oil
get coal
add 7 liverstock
delete 10
get oil
get liverstock
результат работы
0
2
0
1. При выполнения цикла каждая из троек 8 будет заменена на одну 9. Значит у нас получится строка длиной в 334 символа, где 333 девятки и последний символ - восьмерка
2. Далее 333 девятки заменятся на 111 восьмерок плюс последняя восьмерка - всего получим 112 восьмерок
3. Из 112 восьмерок получится 37 девяток и одна восьмерка
4. И 37 девяток получим 12 восьмерок плюс одна девятка и плюс последняя восьмерка
5. 12 восьмерок дадут 4 девятки плюс последние 9 и 8
6. И наконец получаем строку 8998
ответ: 8998
14 16 18 5 6 7
Объяснение:
Рассмотрим i от 7 до 9 - все это числа попадают под условие блока else (потому что не будет выполняться условие i >= 10, а там стоит оператор and, то есть для выполнения условия необходимо две истины)
Таким образом, сначала вывод будет таким:
14 16 18
То есть 7 • 2, 8 • 2, 9 • 2.
Далее рассмотрим числа от 10 до 14. Сразу понимаем, что эти числа попадут в блок if, в котором проверяется четность числа и то, больше ли оно 10. Все эти числа больше 10. Выбираем чётные: 10, 12, 14.
Таким образом, конечный вывод будет таким:
14 16 18 5 6 7