账单在计算机出现之前很久就已进入人们的日常生活。人们往往认为,账单一旦付清,它就只是一张不值得再多看一眼的废纸。然而,计算机科学领域长期忽视了一个事实,即账单上的涂鸦代表了高度形式化且往往相当复杂的文本,非常适合各种形式语言的应用和分析。
账单由多行字符组成。每一行要么是“定价行”(priced line),要么是“耙行”(rake line)。定价行以一个正整数(食品或饮料的价格)开头,后面紧跟若干个竖线。该行的价格计算方式如下:如果存在竖线,则该行的价格等于物品价格乘以竖线的数量。否则,该行的价格等于物品的价格。耙行仅包含竖线(类似于耙子的齿,因此得名“耙行”),每一根竖线代表账单持有者购买的一杯啤酒。在本题中,啤酒的价格为 42 个货币单位。账单总额为账单上所有行价格的总和。
我们为您提供所谓“耙式账单语言”(Raked bill language)的形式定义,据我们所知,这是计算机科学史上首个此类语言。本题中的账单均以耙式账单语言表示。
<BILL> ::= <LINE> | <LINE><BILL> <LINE> ::= <PRICED_LINE><line_break> | <RAKE_LINE><line_break> <PRICED_LINE> ::= <PRICE_SPEC> | <PRICE_SPEC><RAKE> <RAKE_LINE> ::= <RAKE> <PRICE_SPEC> ::= <PUB_INTEGER><comma><hyphen> <RAKE> ::= <rake_dent> | <rake_dent><RAKE> <PUB_INTEGER> ::= <dig_1_9> | <dig_1_9><DIG_SEQ> <DIG_SEQ> ::= <dig_0_9> | <dig_0_9><DIG_SEQ> <dig_1_9> ::= ’1’ | ’2’ | ’3’ | ’4’ | ’5’ | ’6’ | ’7’ | ’8’ | ’9’ <dig_0_9> ::= ’0’ | <dig_1_9> <rake_dent> ::= ’|’ // ascii character 124 <comma> ::= ’,’ // ascii character 44 <hyphen> ::= ’-’ // ascii character 45 <line_break> ::= LF // ascii character 10, line feed
在上述语言规范中,账单上实际出现的字符被单引号括起来,以区别于规范的其他部分。符号 // 引入单行注释,它不是语言定义的一部分。
输入格式
输入包含一个非空的行序列,用于指定一份账单。每一行输入要么是定价行,要么是耙行。定价行以一个不超过 1000 的正整数开头,紧接着是一个逗号和一个减号。减号后面可以选择性地跟随若干个竖线。耙行包含若干个竖线,且不包含其他符号。在整份账单中,竖线表示为 '|'(ASCII 码 124)。每行最多包含 1000 个字符,行内没有空格。输入最多包含 1000 行。输入不包含空行。所有价格均以相同的货币单位表示。
输出格式
输出一个数字——账单总额向上取整到最近的 10 的倍数。该数字应采用 <PUB_INTEGER> 格式,即其后应紧跟一个逗号和一个减号。
样例
输入 1
|||| 123,-|||
输出 1
540,-
输入 2
||| 12,-| ||| 12,-|| 10,-|
输出 2
300,-
输入 3
| 8,-|
输出 3
50,-