Задача №112692. Язык PJ
Мальчик Вартáн настолько любит языки программирования, что выучил уже целых девять и обзавёлся самоучителем по ещё одному языку! Впрочем, просто учить языки ему уже немного надоело, и он решил придумать свой. Название для языка было придумано всего за пару минут — PJ (аббревиатура от любимых команд Вартана), казалось бы, полдела сделано.
После пяти лет упорной работы Вартан реализовал две команды, работающие с целыми неотрицательными числами:
-
print
value
"— число
value
выводится на экран, после чего исполнитель переходит к следующей строке.
-
jump
num
count
"— если выполнено условие
count
> 0
, то управление передаётся в строку с номером
num
, а
count
уменьшается на
1
. В текущей реализации PJ не предусмотрено использование в качестве
num
числа большего, чем номер строки, в которой записана данная команда. Если же
count
= 0
, то исполнитель просто переходит к следующей строке. Обратите внимание, что в следующий раз, когда интерпретатору встретится данная строка, он будет работать уже с новым значением
count
, то есть можно считать, что каждой команде
jump
соответствует своя глобальная переменная.
Изначально исполнитель находится на первой строке, работа программы начинается с выполнения записанной в ней команды. Выполнение программы заканчивается после того, как исполнитель попытается перейти дальше последней строки. Нетрудно догадаться, что на данном языке невозможно написать программу, не завершающуюся за конечное число итераций.
По имеющейся программе на языке PJ определите сумму всех чисел, которые будут выведены в результате её исполнения.
На ввод подаётся корректная программа на языке PJ, состоящая как минимум из одной, но не более чем из 10 5 команд. Количество строк в файле совпадает с количеством команд, каждая команда занимает отдельную строку. Команда, записанная в строке с номером i (при нумерации от единицы), удовлетворяет одному из двух форматов:
- print value , где 0 ≤ value ≤ 10 4 .
- jump num count , где 1 ≤ num ≤ i , 0 ≤ count ≤ 10 4 .
Выведите сумму всех чисел, которые будут выведены в процессе выполнения данной программы.
print 1 print 2 jump 2 2
7
print 3 jump 1 1 print 1 print 1 jump 1 2
18