题库练习 Koxia and Bracket
← 上一题 下一题 →

A15631 | Koxia and Bracket

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

Chiyuu has a bracket sequence $^\dagger$ $s$ of length $n$ . Let $k$ be the minimum number of characters that Chiyuu has to remove from $s$ to make $s$ balanced $^\ddagger$ .

Now, Koxia wants you to count the number of ways to remove $k$ characters from $s$ so that $s$ becomes balanced, modulo $998\,244\,353$ .

Note that two ways of removing characters are considered distinct if and only if the set of indices removed is different.

$^\dagger$ A bracket sequence is a string containing only the characters "(" and ")".

$^\ddagger$ A bracket sequence is called balanced if one can turn it into a valid math expression by adding characters + and 1. For example, sequences (())(), (), (()(())) and the empty string are balanced, while )(, ((), and (()))( are not.

输入格式

The first line of input contains a string $s$ ( $1 \leq |s| \leq 5 \cdot {10}^5$ ) — the bracket sequence.

It is guaranteed that $s$ only contains the characters "(" and ")".

输出格式

Output a single integer — the number of ways to remove $k$ characters from $s$ so that $s$ becomes balanced, modulo $998\,244\,353$ .

输入输出样例

输入 #1
())(()
输出 #1
4
输入 #2
(
输出 #2
1
C++ 编辑器
输入
输出