#chokudai004a. [chokudai004_a]Just Write Numbers!

[chokudai004_a]Just Write Numbers!

问题陈述

Takahashi喜欢三个整数B1B_1B2B_2B3B_3

他将在一个N×NN \times N的网格中写入整数,使得它包含许多垂直或水平的连续段,其和为他最喜欢的数字。

例如,如果他将数字写入如下,并且他最喜欢的数字是1313,那么标记为红色的段将具有期望的和。

A1,A2,A3A_1, A_2, A_3分别为和为B1,B2,B3B_1, B_2, B_3的垂直或水平段的数量。那么他将获得A1×B1+A2×B2+A3×B3A_1 \times B_1 + A_2 \times B_2 + A_3 \times B_3分。

然而,Takahashi所能在网格中写的数字有一些限制。在每个方格上,他必须写一个介于此方格指定的下限和上限之间的数字。

在从上至下的第ii行、从左至右的第jj列的方格上,他必须写一个介于li,jl_{i,j}ri,jr_{i,j}(包括边界)之间的数字。

找到一种方法,使得Takahashi获得尽可能多的分数。

这是一个所谓的“马拉松”问题,你不需要找到最优解。任何有效的解决方案都将得分。

约束条件

  • N=30N = 30
  • 10B11910 \leq B_1 \leq 19
  • 20B12920 \leq B_1 \leq 29
  • 30B13930 \leq B_1 \leq 39
  • 1li,jri,j91 \leq l_{i,j} \leq r_{i,j} \leq 9

输入格式

输入以以下格式从标准输入给出:

NN B1B_1 B2B_2 B3B_3 l1,1l_{1,1} l1,2l_{1,2} \ldots l1,Nl_{1,N} l2,1l_{2,1} l2,2l_{2,2} \ldots l2,Nl_{2,N} :: lN,1l_{N,1} lN,2l_{N,2} \ldots lN,Nl_{N,N} r1,1r_{1,1} r1,2r_{1,2} \ldots r1,Nr_{1,N} r2,1r_{2,1} r2,2r_{2,2} \ldots r2,Nr_{2,N} :: rN,1r_{N,1} rN,2r_{N,2} \ldots rN,Nr_{N,N}

输出格式

Ai,jA_{i,j}为第ii行、第jj列方格上要写入的数字。以以下格式打印你的解决方案:

A1,1A_{1,1} A1,2A_{1,2} \ldots A1,NA_{1,N} A2,1A_{2,1} A2,2A_{2,2} \ldots A2,NA_{2,N} :: AN,1A_{N,1} AN,2A_{N,2} \ldots AN,NA_{N,N}

如果对于每个Ai,jA_{i,j}都满足li,jAi,jri,jl_{i,j} \leq A_{i,j} \leq r_{i,j},则你的解决方案将被视为有效,并根据问题陈述获得分数。

如果你的输出不被视为有效解决方案,则在几乎所有测试用例中得分为00

输入生成

  • BB将在约束条件中指定的范围内均匀随机生成。
  • li,jl_{i,j}ri,jr_{i,j}将在1199(包括边界)之间独立地均匀随机生成,每个方格独立生成。如果li,jl_{i,j}大于ri,jr_{i,j},它们将被交换。

样例输入、输出和其他说明

样例输入、输出(示例01至03)以及一个验证输入和输出的程序(C++)可以在此处找到。