题号:NC15945
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 128 M,其他语言256 M
64bit IO Format: %lld
题目描述
田忌和齐威王又开始赛马了,这一次齐威王为了增加难度,在每一匹马上都设置了一个刀币值,如果田忌赢了这匹马,那么他就可以获得相应的刀币,否则他就要失去相应的刀币(平局田忌也要失去刀币)。现在齐威王和田忌各有n匹马,每匹马有一个速度值,齐威王的每匹马还有一个刀币值,速度快的马会获得胜利,速度相同则是平局。现在齐威王已经排好了马的顺序,请你帮助田忌排兵布阵,并计算出他最多可以赢得多少刀币?(如果最后是输钱就请输出负数)。
例如:当有n=3匹马的时候
齐威王三匹马的速度为40, 30, 20
三匹马对应的刀币值为 1,2,3
田忌三匹马的速度为 20,30,50
齐威王的马顺序固定,田忌可以随意调动马匹出场顺序
当田忌出场顺序为 20,50,30 的时候
田忌会先失去一个刀币,再获得两个刀币,再获得三个刀币,故最后田忌赢得四个刀币,输出4,如果输了x个刀币就输出x的负数。
输入描述:
输入第一行包含一个整数T,代表测试案例个数。(5<=T<=10)
接下来每个测试案例都包括四行
第一行为一个整数n(0<n<=1000),代表马的个数。
第二行为n个整数,代表齐威王各匹马的速度。
第三行为n个整数,代表齐威王各匹马的刀币值(0<刀币值<=100),与速度值一一对应。
第四行为n个整数,代表田忌各匹马的速度。(0<速度值<=100)
输出描述:
输出田忌最多可以赢得的刀币值。
示例1
输入
复制
2
3
40 30 20
1 2 3
20 30 50
5
25 25 50 60 10
10 50 5 100 30
70 5 30 25 40