首页 > 试题广场 >

线性魔塔

[编程题]线性魔塔
  • 热度指数:121 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
牛牛在玩一个线性魔塔游戏,地图是一条[-n,n]的直线段。

怪物在[-n,-1],[1,n]的每个位置都有分布。同向的怪物互相遮挡,比如如果要攻击位置为3的怪物,必须在攻击之前击杀位置为1和2的怪物,如果要攻击-2位置的怪物,也必须先击杀位置-1的怪物。

每一个怪物需要消耗勇者a_i的生命值,杀死某个怪物后会给勇者恢复b_i的血量。

勇者的生命值在非正的时候被认为牺牲,勇者的生命值没有上限。

牛牛想知道,勇士初始时拥有多少生命值,可以用策略杀完所有怪物。

输入描述:
第一行输入一个整数n,如题目中所示。

随后一行,输入2n个整数a_i,分别表示按[-n,-1],[1,n]的顺序,杀死怪物消耗的勇者的生命值。

随后一行,输入2n个整数a_i,分别表示按[-n,-1],[1,n]的顺序,杀死怪物后勇者恢复的生命值。

对于的数据有

对于的数据有

对于的数据有

对于的数据有

对于的数据有


输出描述:
输出一行一个整数,表示答案。
示例1

输入

2
6 5 8 9
1 20 1 0

输出

7

说明

先击杀-1位置的怪物,生命值-5=2,恢复+20=22。
再击杀位置-2的怪物,生命值-6=16,恢复+1=17。
再击杀位置1的怪物,生命值-8=9,恢复+1=10。
再击杀位置2的怪物,生命值-9=1。
此时,勇者已经击杀了所有怪物。

备注:

这道题你会答吗?花几分钟告诉大家答案吧!