結果
問題 |
No.3099 Parentheses Decomposition
|
ユーザー |
|
提出日時 | 2025-05-21 19:43:26 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 98 ms / 2,000 ms |
コード長 | 547 bytes |
コンパイル時間 | 1,087 ms |
コンパイル使用メモリ | 82,116 KB |
実行使用メモリ | 84,500 KB |
最終ジャッジ日時 | 2025-05-21 19:43:30 |
合計ジャッジ時間 | 3,605 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 20 |
ソースコード
MOD = 998244353 N = int(input()) S = input().strip() if N==2: print(2) else: A = [1]*(N+1) for i in range(2,N+1): A[i] = (A[i-1]*i)%MOD B = [1]*(N+1) B[N] = pow(A[N],MOD-2,MOD) for i in range(N-1,1,-1): B[i] = (B[i+1]*(i+1))%MOD def comb(n,k): if k<0 or k>n:return 0 return A[n]*B[k]*B[n-k]%MOD if S[1]==S[0]: # A ans = 0 for k in range(0,N+1,2): ans = (ans + comb(N//2,k//2)*comb(N//2,k//2))%MOD else: # B ans = pow(2,N//2,MOD) print(ans)