logo AlgoBeat OnlineJudge
登录 注册

#102130. [BZOJ 2130] 魔塔

内存限制:512 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:无测试数据
上传者: 匿名

题目描述

  魔塔是一款很流行的益智类小游戏。在游戏中,你可以控制主人公在魔塔中移动,走到怪兽面前便可以和怪兽来决斗,打败怪兽后可以得到金钱,并可以通过金钱来提高自己的攻击力、防御力、血量,从而变得更强大。

  然而,即便你拥有再高的攻击力、防御力,可以天下无敌,但一扇小小的门就可以阻止你无法前进。在游戏中,有红、黄、蓝三种颜色的门,并对应有红、黄、蓝三种颜色的钥匙。如果你想通过一扇门,需要消耗一把对应颜色的钥匙打开这扇门,如果你没有这种颜色的钥匙,便不能通过。

  现在你得到一款加强版的魔塔游戏:首先,门和钥匙的颜色不再是三种,而是 种,定为 号颜色。对于 号颜色的钥匙你有 把。并且之后你不会以任何形式得到任何颜色的钥匙。在你面前有三座 层的魔塔 。每座魔塔的入口处和相邻两层之间都会有一扇门。对于每座魔塔,恰好有 扇门,并且这 扇门的颜色恰好各不相同。其中, 魔塔中通往第 层的门颜色为 。( 的定义与 类似)在每座魔塔的每一层都有一定数量的怪兽,但这些怪兽根本打不过强大的你,你可以不费一滴血就秒杀这些怪兽,并得到杀死他们的金钱。我们已经为你统计好,消灭 魔塔第 层中所有的怪兽,可以得到的金钱数为 。( 的定义与 类似)现在,就请你来决策,如何运用这些钥匙,能得到最多的金钱,并告诉我们最多能获得多少金钱。

输入格式

第一行一个字符(),表示数据类型(在下面数据规模中有详细介绍)。

第二行一个整数 ,表示有几组测试数据。

之后给出 组数据,对于每组数据有九行:

第一行一个整数 ,表示魔塔层数。

第二行一个数列

第三行至第五行,每行一个数列,分别为

第六行至第八行,每行一个数列,分别为

第九行为一个空行。

输出格式

输出应包含 行,每行一个正整数,为最大能获得的金钱数。

样例

样例输入 #1

A
2
5
1 2 1 1 2
1 2 3 4 5
2 4 3 5 1
5 4 3 2 1
1 1 1 1 5
1 2 2 3 3
1 2 1 1 1
5
1 2 1 1 2
1 2 3 4 5
2 4 3 5 1
5 4 3 2 1
1 1 1 1 50
1 2 2 3 3
1 2 1 1 1

样例输出 #1

12
56

数据范围与提示

对于 的数据:

为三个 的排列。

数据共分为六类:,他们分别有各自的特征:

类数据占 ,保证

类数据占 ,保证

类数据占 ,保证 ,即第三座塔中没有任何金钱。

类数据占 ,保证 ,即每种钥匙你都只有一把。

类数据占 ,保证 三个 的排列为随机产生的数列。

类数据占 ,没有其他特征。

样例说明

对于第一个数据:

1 2 3 4 5,第一个魔塔不用钥匙,能得到 金钱;

2 4 3 5 1,第二个魔塔用 号钥匙,得到 金钱;

5 4 3 2 1,第三个魔塔用 号钥匙,得到 金钱;

最多可得到 金钱。


对于第二个数据:

1 2 3 4 5,第一个魔塔用 号钥匙,能得到 金钱;

2 4 3 5 1,第二个魔塔用 号钥匙,得到 金钱;

5 4 3 2 1,第三个魔塔用 号钥匙,得到 金钱;

最多可得到 金钱。