結果
問題 |
No.2031 Colored Brackets
|
ユーザー |
![]() |
提出日時 | 2025-03-25 05:17:15 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 977 bytes |
コンパイル時間 | 362 ms |
コンパイル使用メモリ | 82,212 KB |
実行使用メモリ | 334,464 KB |
最終ジャッジ日時 | 2025-03-25 05:17:20 |
合計ジャッジ時間 | 4,669 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | TLE * 1 -- * 29 |
ソースコード
MOD = 998244353 N = int(input()) S = input() ns = len(S) dp = [[-1] * (ns+1) for _ in range(ns+1)] dp[0][0] = 1 for i, c in enumerate(S): pp = [[0] * (ns+1) for _ in range(ns+1)] dp, pp = pp, dp if c == '(': # 赤を増やす for j in range(ns): for k in range(ns): dp[j+1][k] += pp[j][k] dp[j+1][k] %= MOD # 青を増やす for j in range(ns): for k in range(ns): dp[j][k+1] += pp[j][k] dp[j][k+1] %= MOD elif c == ')': # 赤を減らす for j in range(ns): for k in range(ns): if j == 0: continue dp[j-1][k] += pp[j][k] dp[j-1][k] %= MOD # 青を減らす for j in range(ns): for k in range(ns): if k == 0: continue dp[j][k-1] += pp[j][k] dp[j][k-1] %= MOD ans = dp[0][0] print(ans)