#551. 金字塔数独
金字塔数独
创英天资聪颖,酷爱数学,尤其擅长做数独游戏。不过普通的数独游戏已经满足不了小明了,于是他发明了一种“金字塔数独”:
下图即为金字塔数独。和普通数独一样,在 的大九宫格中有 个 的小九宫格(用粗黑色线隔开的)。要求每个格子上都有一个 到 的数字,每个数字在每个小九宫格内不能重复出现,每个数字在每行、每列也不能重复出现。
但金字塔数独的每一个格子都有一个分值,类似金字塔的俯视图。如图所示,白色格子为 分,蓝色格子为 分,绿色格子为 分,紫色格子为 分,红色格子为 分。颜色相同的格子分值一样,离中心越近则分值越高。
金字塔数独的总分等于每个格子上的数字和对应的分值乘积之和。现在小明给定金字塔数独的若干数字,请问如何填写,可以使得金字塔数独的总分最高。
输入格式
输入一共 行。每行输入 个整数(每个数都在 — 的范围内),每两个整数之间用一个空格隔开,“0”表示该格子为空。
输出格式
输出为一行,输出一个整数,代表金字塔数独的最高总分。如果数独无解,则输出 。
格式说明输出时每行末尾的多余空格,不影响答案正确性
输入、输出要求要求使用「文件输入、输出」的方式解题,输入文件为 tower.in
,输出文件为 tower.out
样例输入
0 0 0 0 0 0 0 0 0
0 0 3 0 0 0 9 0 0
7 9 0 0 0 2 0 1 3
0 0 9 1 5 0 0 0 0
0 7 4 0 2 6 1 3 9
0 0 6 0 0 0 0 0 0
6 0 0 0 0 7 0 0 0
3 1 0 4 0 5 7 9 6
0 0 7 0 0 1 0 4 0
样例输出
2864