问题 5941 --5、魔术数组

5941: 5、魔术数组

题目描述

  一个 N 行 N 列的二维数组,如果它满足如下的特性,则成为“魔术数组”: 1、从二维数组任意选出 N 个整数。 2、选出的 N 个整数都是在不同的行且在不同的列。 3、在满足上述两个条件下,任意选出来的 N 个整数的总和都是相等的。 例如,这是一个 4×4 的二维数组: 140 80 160 60 90 30 110 10 100 40 120 20 130 70 150 50 你会发现,任意从里面选出 4 个来自不同行和不同列的整数,它们的总和都是 340,所以这个二维数组是 “魔术数组”。 现在给出整数 N,给出二维数组第一行的 N 个整数,再给出二维数组的左上角到右下角的对角线上的 N 个 整数。你的任务是根据给出的数据,构造满足题意的“魔术数组”。如果有多种方案,输出任意一种方案, 如果没有方案,输出-1。

输入

第一行,一个整数 N。 1 <= N <= 30。 第二行,N 个整数,表示魔术数组的第一行的 N 个整数。每个整数范围[-1000,1000]。 第三行,N 个整数,表示魔术数组的左上角到右下角的对角线上面的 N 个整数,每个整数范围[-1000,1000]。

输出

N 行 N 列的二维数组,表示满足题意的“魔术数组”,或者-1。

样例输入输出

输入#1 复制
4
140 80 160 60
140 30 120 5

2
1 7
1 4
输出#1 复制
140 80 160 60
90 30 110 10
100 40 120 20
130 70 150 50

1 7
-2 4

提示

0%的数据, N<=3。

序号 标题 作者 发表时间 费用 订购数 操作