atcoder#ABC256C. [ABC256C] Filling 3x3 array

[ABC256C] Filling 3x3 array

Score : 300300 points

Problem Statement

You are given six integers: h1,h2,h3,w1,w2h_1, h_2, h_3, w_1, w_2, and w3w_3. Consider writing a positive integer on each square of a 3×33 \times 3 grid so that all of the following conditions are satisfied:

  • For i=1,2,3i=1,2,3, the sum of numbers written in the ii-th row from the top is hih_i.
  • For j=1,2,3j=1,2,3, the sum of numbers written in the jj-th column from the left is wiw_i.

For example, if (h1,h2,h3)=(5,13,10)(h_1, h_2, h_3) = (5, 13, 10) and (w1,w2,w3)=(6,13,9)(w_1, w_2, w_3) = (6, 13, 9), then all of the following three ways satisfy the conditions. (There are other ways to satisfy the conditions.)

image

How many ways are there to write numbers to satisfy the conditions?

Constraints

  • 3h1,h2,h3,w1,w2,w3303 \leq h_1, h_2, h_3, w_1, w_2, w_3 \leq 30
  • All values in input are integers.

Input

Input is given from Standard Input in the following format:

h1h_1 h2h_2 h3h_3 w1w_1 w2w_2 w3w_3

Output

Print the number of ways to write numbers to satisfy the conditions.

3 4 6 3 3 7
1

The following is the only way to satisfy the conditions. Thus, 11 should be printed.

image2

3 4 5 6 7 8
0

There may not be a way to satisfy the conditions.

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