#CF2096C. 精彩城市
精彩城市
你是古代伯兰一座城市的骄傲领导者。城市中有 座建筑,排列成一个 行 列的网格。位于第 行第 列的建筑的高度为 。
如果任意两座边相邻的建筑高度都不相同,则这座城市是美丽的。换句话说,必须满足以下条件:
- 不存在位置 (, ) 使得 。
- 不存在位置 (, ) 使得 。
A 公司有 名工人,B 公司有 名工人。每名工人最多只能被雇佣一次。
雇佣 A 公司的工人 需要花费 个硬币。雇佣后,工人 会:
- 将第 行所有建筑的高度增加 。即将 增加 。
雇佣 B 公司的工人 需要花费 个硬币。雇佣后,工人 会:
- 将第 列所有建筑的高度增加 。即将 增加 。
请找出使城市变得美丽所需的最小硬币数,如果不可能则报告不可能。
输入
每个测试包含多个测试用例。第一行包含测试用例的数量 ()。接下来是每个测试用例的描述。
每个测试用例的第一行包含一个整数 () — 网格的大小。
每个测试用例接下来的 行中的第 行包含 个整数 () — 第 行建筑的高度。
每个测试用例的下一行包含 个整数 () — 雇佣 A 公司工人的花费。
每个测试用例的最后一行包含 个整数 () — 雇佣 B 公司工人的花费。
保证所有测试用例的 之和不超过 。
输出
对于每个测试用例,输出一个整数 — 所需的最小硬币数,如果不可能则输出 。
4
2
1 2
2 1
100 100
100 100
4
1 2 1 2
3 2 1 2
1 2 1 1
1 3 1 2
1 2 3 4
5 6 7 8
3
1 2 2
2 2 1
2 1 1
100 100 100
100 100 100
6
8 7 2 8 4 8
7 7 9 7 1 1
8 3 1 1 8 5
6 8 3 1 1 4
1 4 5 1 9 6
7 1 1 6 8 2
11 23 20 79 30 15
15 83 73 57 34 63
0
14
-1
183
样例解释
对于第一个测试用例,我们可以看到城市已经是美丽的。因此答案为 。
对于第二个测试用例,我们可以雇佣 A 公司的工人 、A 公司的工人 以及 B 公司的工人 :

雇佣工人的花费为 。这是可能的最小花费。
对于第三个测试用例,无论我们怎么做,都不可能使城市变得美丽。因此答案为 。