atcoder#ABC256C. [ABC256C] Filling 3x3 array

[ABC256C] Filling 3x3 array

配点 : 300300

問題文

66 個の整数 h1,h2,h3,w1,w2,w3h_1, h_2, h_3, w_1, w_2, w_3 が与えられます。 縦横 3×33 \times 3 のマス目に、以下の条件をすべて満たすように各マスに正の整数を 11 つずつ書きこむことを考えます。

  • i=1,2,3i=1,2,3 について、上から ii 行目に書きこんだ数の和が hih_i になる。
  • j=1,2,3j=1,2,3 について、左から jj 列目に書きこんだ数の和が wjw_j になる。

例えば $(h_1, h_2, h_3) = (5, 13, 10), (w_1, w_2, w_3) = (6, 13, 9)$ のとき、以下の 33 通りの書きこみ方はすべて条件を満たしています。(条件を満たす書きこみ方は他にもあります)

image

さて、条件を満たす書きこみ方は全部で何通り存在しますか?

制約

  • 3h1,h2,h3,w1,w2,w3303 \leq h_1, h_2, h_3, w_1, w_2, w_3 \leq 30
  • 入力される値はすべて整数

入力

入力は以下の形式で標準入力から与えられる。

h1h_1 h2h_2 h3h_3 w1w_1 w2w_2 w3w_3

出力

条件を満たす書きこみ方が何通りあるかを出力せよ。

3 4 6 3 3 7
1

条件を満たす数の書きこみ方は次の 11 通りのみです。よって 11 を出力します。

image2

3 4 5 6 7 8
0

条件を満たす書きこみ方が存在しないこともあります。

5 13 10 6 13 9
120
20 25 30 22 29 24
30613