CF1770G.Koxia and Bracket

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Chiyuu has a bracket sequence ^\dagger ss of length nn . Let kk be the minimum number of characters that Chiyuu has to remove from ss to make ss balanced ^\ddagger .

Now, Koxia wants you to count the number of ways to remove kk characters from ss so that ss becomes balanced, modulo 998244353998\,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 ss ( 1s51051 \leq |s| \leq 5 \cdot {10}^5 ) — the bracket sequence.

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

输出格式

Output a single integer — the number of ways to remove kk characters from ss so that ss becomes balanced, modulo 998244353998\,244\,353 .

输入输出样例

  • 输入#1

    ())(()

    输出#1

    4
  • 输入#2

    (

    输出#2

    1

说明/提示

In the first test case, it can be proved that the minimum number of characters that Chiyuu has to remove is 22 . There are 44 ways to remove 22 characters to make ss balanced as follows. Deleted characters are noted as red.

  • ())(()\texttt{(} \color{Red}{\texttt{)}} \texttt{)} \color{Red}{\texttt{(}} \texttt{(} \texttt{)} ,
  • ())(()\texttt{(} \texttt{)} \color{Red}{\texttt{)}} \color{Red}{\texttt{(}} \texttt{(} \texttt{)} ,
  • ())(()\texttt{(} \color{Red}{\texttt{)}} \texttt{)} \texttt{(} \color{Red}{\texttt{(}} \texttt{)} ,
  • ())(()\texttt{(} \texttt{)} \color{Red}{\texttt{)}} \texttt{(} \color{Red}{\texttt{(}} \texttt{)} .

In the second test case, the only way to make ss balanced is by deleting the only character to get an empty bracket sequence, which is considered balanced.

首页