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
7
2
мотор
торт
Торт
Объяснение:
writeln(length(s)) - вывод количества символов в строке
writeln(pos('о',s)) - вывод первой позиции символа 'о' в строке s
delete(s,3,2) - удаление в строке s 2-х символов начиная с символа под номером 3
writeln(s) - вывод получившейся строки s
t:=copy(s, 3, 3) - копирование в строку t 3-х символов строки s начиная с 3 символа (тор)
insert ('т',t,4) - вставка символа 'т' в строку t на позицию 4
writeln (t) - вывод получившейся строки t
t[1]:=UpCase(t[1]) - замена первого символа строки t на заглавный
writeln (t) - вывод получившейся строки t