atcoder#ABC256C. [ABC256C] Filling 3x3 array

[ABC256C] Filling 3x3 array

题目描述

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

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

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

image

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

输入格式

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

h1 h_1 h2 h_2 h3 h_3 w1 w_1 w2 w_2 w3 w_3

输出格式

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

题目大意

题目描述

给你六个正整数 h1,h2,h3h_1,h_2,h_3 以及 w1,w2,w3w_1,w_2,w_3,请构造出一个 3×33 \times 3正整数方阵,使得:

  • 方阵内的数均为正整数;
  • 对于上起第 ii 行中的三个整数,满足:它们的和与 hih_i 相等;
  • 对于左起第 ii 列中的三个整数,满足:它们的和与 wiw_i 相等。

请求出满足条件的构造方案数。

输入格式

一行六个整数 h1,h2,h3,w1,w2,w3h_1,h_2,h_3,w_1,w_2,w_3,相邻的两个整数之间以单个空格隔开。

输出格式

一行一个非负整数,即构造方案数。

说明/提示

输入输出样例 #1 说明

只有如图一种方案,所以输出 11样例 #1 方案

输入输出样例 #2 说明

可能没有办法满足条件。

数据规模与约定

33 \le 输入中的所有数 30 \le 30 且输入均为整数。

3 4 6 3 3 7
1
3 4 5 6 7 8
0
5 13 10 6 13 9
120
20 25 30 22 29 24
30613

提示

制約

  • $ 3\ \leq\ h_1,\ h_2,\ h_3,\ w_1,\ w_2,\ w_3\ \leq\ 30 $
  • 入力される値はすべて整数

Sample Explanation 1

条件を満たす数の書きこみ方は次の 1 1 通りのみです。よって 1 1 を出力します。 ![image2](https://img.atcoder.jp/ghi/d53ea47321716fe799854c72b7beff3c.jpg)

Sample Explanation 2

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