QOJ.ac

QOJ

時間限制: 1 s 記憶體限制: 256 MB 總分: 100

#1792. 啤酒账单

统计

账单在计算机出现之前很久就已进入人们的日常生活。人们往往认为,账单一旦付清,它就只是一张不值得再多看一眼的废纸。然而,计算机科学领域长期忽视了一个事实,即账单上的涂鸦代表了高度形式化且往往相当复杂的文本,非常适合各种形式语言的应用和分析。

账单由多行字符组成。每一行要么是“定价行”(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,-

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.