AT_ajo2025_final_a Finding (((...)))

Description

整数 $ N,K $ が与えられます. `(`,`)` からなる正しい括弧列 $ s $ に対し,そのスコアを次のように定義します. - $ ( $ `(` $ \times c )+ ( $ `)` $ \times c) $ という形の文字列 (`()`, `(())`, `((()))`, etc...) を**よい文字列**と呼ぶことにする. $ s $ に(連続するとは限らない)部分列として含まれるよい文字列の長さの最大値を, $ s $ のスコアとする. 長さ $ 2N $ の正しい括弧列であって,スコアがちょうど $ 2K $ になるものの個数を $ 998244353 $ で割ったあまりを求めてください. $ 1 $ つの入力につき, $ T $ 個のテストケースを解いてください. 正しい括弧列とは正しい括弧列とは、`()` である部分文字列を削除することを $ 0 $ 回以上繰り返して空文字列にできる文字列を指します。

Input Format

入力は以下の形式で標準入力から与えられる. > $ T $ $ case_1 $ $ case_2 $ $ \vdots $ $ case_T $ 各テストケースは以下の形式で与えられる. > $ N $ $ K $

Output Format

答えを出力せよ.

Explanation/Hint

### Sample Explanation 1 長さ $ 4 $ の正しい括弧列と,そのスコアは以下のとおりです. - `()()`: スコア $ 2 $ - `(())`: スコア $ 4 $ ### Constraints - $ 1 \leq T \leq 10^5 $ - $ 1 \leq K \leq N \leq 10^6 $ - 入力はすべて整数