#HX1254H. b的表达式

提交0 通过0
通过率0%
时间限制1000ms
内存限制128MiB
    ID: 10065 传统题 1000ms 128MiB 尝试: 0 已通过: 0 难度: 普及+/提高- 上传者: 标签>编程题C++CSPCSP复赛CSP复赛专项练习暑假CSP复赛集训暑假集训1254-表达式递归

题目描述

题目描述

给出一个由 ()|&b 组成的序列,你需要化简它。化简规则:

(1)形如 bb...b|bb...b的,化简结果为“|”两边 b 的个数最多的一项。例如 b|bbb = bbb

(2)形如 bb...b&bb...b的,化简结果为“&”两边 b 的个数最少的一项。例如 b&bbb = b

(3)同时有“|”和“&”的,先算“&”。 例如 bb|bbb&b = bb|b = bb

(4)只有“|”或者只有“&”的,先算最左边的“|”或“&”。 例如 bb|b|bbb = bb|bbb = bbbbb&b&bbb = b&bbb = b

(5)先算带括号的序列,多层括号先算内层,例如 (b|(bbb&b)b)b&bb =(bbb)b= (b|bb)b&bb=bb = bbb&bb = bb。如果括号中只有字符 b,忽略这对括号,例如 (b(b))bb = (bb)bb = bbbb

|”和“&”都需要消耗一定的运算资源,不论何种运算,消耗的运算资源都等于参与运算的两边 b 的个数之和。

求化简后的结果中 b 的个数,以及化简过程中消耗的运算资源。

输入格式

一个字符串。对 100%数据:序列长度不超过 100000,只含字符 ()|&b。保证序列合法且“|”和“&”左右均非空。

输出格式

输出两个整数,用空格分隔,第 1 个数表示化简后 b 的个数,第 2 个数表示消耗的运算资源。

样例输入

(b|bb)b&bb

样例输出

2 8

提示

样例1说明:

化简过程:(b|bb)b&bb = bbb&bb = bb

第 1 次化简 b|bb 时消耗运算资源为 3,第 2 次化简 bbb&bb 时消耗运算资源为 5。总消耗 8。

(b|bb)b&bb
2 8
b|bbb&bb|b
2 11
(b|bb)b&bb
2 8