设前缀和 Ai=∑j=1iaj、Bi=∑j=1ibj。
单次遍历,逐日更新前缀:在第 i 天先计算 di=max(0,ai−bi)。若 di>0,比较“包含当天”的前缀 Bi 与 Ai:
时间复杂度 O(n),空间 O(1)。用 64 位整型累计答案与前缀和。
在一段史诗般的冒险游戏中,米小游制定了 n 天的任务计划,其中第 i 天目标是收集 ai 个魔法晶体;然而,实际第 i 天他收集了 bi 个晶体。
为了平衡游戏难度,系统设定如下惩罚机制:
如果第 i 天 bi<ai ;且到第 i 天为止的累计实际收集总量不少于累计目标总量,则需要额外消耗 ai−bi 个能量点;
如果第 i 天 bi<ai ,且到第 i 天为止的累计实际收集总量小于累计目标总量,则需要额外消耗 2×(ai−bi) 个能量点;
请计算米小游总共需要额外消耗多少个能量点,以完成整个冒险。
第一行输入一个整数 n(1≦n≦2×105) ,表示冒险天数。
第二行输入 n 个整数 a1,a2,...,an(1≦ai≦109) ,表示每天的目标晶体数。
第二行输入 n 个整数 b1,b2,...,bn(1≦bi≦109) ,表示每天的实际晶体数。
输出一个整数,表示总额外消耗的能量点数。
输入
3
2 1 3
1 2 2
输出
4
输入
5
3 3 3 3 3
2 4 1 5 2
输出
8