AT_arc214_c [ARC214C] Divide into 4 Teams

Description

$ 1, \dots ,N $ の番号がついた $ N $ 人の人がいます。人 $ i $ の**強さ**は $ P_i $ です。 各人を $ A,B,C,D $ のいずれかのチームに割り当てることで、 $ 4 $ つのチームにチーム分けをします。チーム分けの方法は $ 4^N $ 通りありますが、このうち以下の条件を全て満たすチーム分けの個数を $ 998244353 $ で割った余りを求めて下さい。 - $ A,B,C,D $ のどのチームにも $ 1 $ 人以上所属する。 - チーム $ A $ に所属する人の強さの和とチーム $ B $ に所属する人の強さの和が等しい。 - チーム $ C $ に所属する人の強さの和とチーム $ D $ に所属する人の強さの和が等しい。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ P_1 $ $ P_2 $ $ \ldots $ $ P_N $

Output Format

問題文中の条件を満たすチーム分けの個数を $ 998244353 $ で割った余りを出力せよ。

Explanation/Hint

### Sample Explanation 1 以下の $ 8 $ 通りのチーム分けが条件を満たします。 人 $ 1 $ 人 $ 2 $ 人 $ 3 $ 人 $ 4 $ チーム分け $ 1 $ ABCDチーム分け $ 2 $ BACDチーム分け $ 3 $ ABDCチーム分け $ 4 $ BADCチーム分け $ 5 $ CDABチーム分け $ 6 $ CDBAチーム分け $ 7 $ DCABチーム分け $ 8 $ DCBA ### Sample Explanation 2 条件を満たすチーム分けが存在しません。 ### Constraints - $ 4 \le N \le 500 $ - $ 1 \le P_i $ - $ \sum_{1 \le i \le N} P_i \le 10^5 $ - 入力される値は全て整数