AT_stpc2025_1_c Sum of Three Inversions
Description
整数 $ N, X, Y, K, M $ が与えられます。長さ $ N $ の整数列からなる $ 3 $ つ組 $ (A, B, C) $ であって、以下の条件をすべて満たす組の個数を $ M $ で割ったあまりを求めてください。ただし、数列 $ a $ の $ k $ 番目の要素を $ a_k $ と表すこととします。
- $ i = 1, 2, \dots, N $ について、 $ (A_i, B_i, C_i) $ は $ (1, 2, 3) $ の順列である。
- $ A $ に含まれる $ 1, 2 $ の個数はそれぞれ $ X, Y $ である。
- $ A $ の転倒数と $ B $ の転倒数と $ C $ の転倒数の合計は $ K $ である。
転倒数とは?数列 $ a $ の転倒数とは、 $ 1 \le i < j \le |a| $ かつ $ a_i > a_j $ を満たす整数組 $ (i, j) $ の個数を指します。
Input Format
入力は以下の形式で与えられる。
> $ N $ $ X $ $ Y $ $ K $ $ M $
Output Format
答えを出力せよ。
Explanation/Hint
### Sample Explanation 1
条件を満たす $ (A, B, C) $ は $ 24 $ 通り存在します。例えば、 $ A = (1, 2, 3), B = (3, 3, 2), C = (2, 1, 1) $ とすると、 $ (A, B, C) $ は条件を満たします。
### Sample Explanation 2
条件を満たす $ (A, B, C) $ は存在しません。
### Constraints
- 入力はすべて整数
- $ 2 \le N \le 50 $
- $ 0 \le X, Y \le N $
- $ X + Y \le N $
- $ 0 \le K \le \frac{3}{2}N(N - 1) $
- $ {10}^8 \le M \le {10}^9 $