結果
問題 | No.2031 Colored Brackets |
ユーザー |
|
提出日時 | 2022-06-12 04:44:08 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,461 bytes |
コンパイル時間 | 466 ms |
コンパイル使用メモリ | 81,944 KB |
実行使用メモリ | 332,508 KB |
最終ジャッジ日時 | 2024-09-15 16:26:46 |
合計ジャッジ時間 | 4,043 ms |
ジャッジサーバーID (参考情報) |
judge6 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | TLE * 1 -- * 29 |
ソースコード
def is_correct(s):stack = []for v in s:stack.append(v)if len(stack) >= 2 and stack[-2] == '(' and stack[-1] == ')':stack.pop()stack.pop()if not stack:return Trueelse:return Falsedef solve(n, s):mod = 998244353if not is_correct(s):return 0open = [0] * nclose = [0] * nfor i in range(n):if s[i] == '(':open[i] += 1else:close[i] += 1open[i] += open[i - 1]close[i] += close[i - 1]dp = [[0] * (n + 1) for _ in range(n + 1)]dp[0][0] = 1for i in range(n):e = [[0] * (n + 1) for _ in range(n + 1)]if s[i] == '(':for j in range(i + 1):for k in range(j + 1):e[j + 1][k] += dp[j][k]e[j + 1][k] %= mode[j][k] += dp[j][k]e[j][k] %= modelse:for j in range(i + 1):for k in range(j + 1):if j >= k + 1:e[j][k + 1] += dp[j][k]e[j][k + 1] %= modif open[i] - j >= close[i] - k:e[j][k] += dp[j][k]e[j][k] %= moddp = eans = 0for i in range(n):ans += dp[i][i]ans %= modreturn ansn = int(input())s = input()print(solve(n, s))