Reinforced Problem
时间限制:C/C++/Rust/Pascal 3秒,其他语言6秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

原神是一款开放世界的动作角色扮演游戏,玩家一次可以选择四名角色参与战斗,并且在战斗中可以快速切换。角色可以通过各种方式增强他们的力量,例如提高角色的等级,改进角色装备的圣遗物和武器。

\text{zml} 就是一名忠实的原神玩家,但是由于 \text{ffg} 对原神的强烈抵制,\text{zml} 不得不规划一下自己玩原神的时间。

\text{zml}i 天玩原神都会有一个喜悦值 a_i,与此同时,\text{ffg} 也会在这天有一个对原神玩家的愤怒值 b_i,并且假如 \text{zml} 连续几天玩原神这个愤怒值会累加,假如有一天没有玩原神,\text{ffg} 就会原谅他,然后愤怒值清空,但是 \text{zml} 的喜悦值不会受到影响。

\text{ffg} 有个忍耐值 m,只要 \text{ffg} 的愤怒值没有超过 m\text{ffg} 就不会爆发,\text{zml} 就可以安然无恙的玩原神,否则 \text{ffg} 就会把他炖了。

现在基于 \text{zml} 每天的喜悦值和 \text{ffg} 对原神玩家的愤怒值,请你输出 \text{zml} 的最大喜悦值(当然,\text{zml} 不想被炖)。

alt

alt

输入描述:

第一行包含一个整数 T(1\le T\le 10^4 ),表示测试用例的数量。

每个测试用例的第一行包含一个整数 n,m(1\le n\le 10^5,0\le m\le 10^{14})n 表示天数,m 表示 \text{ffg} 的最大愤怒值。

第二行包含 n 个数 a_1,a_2,..,a_n(1\le |a_i|\le 10^{9}),表示 \text{zml} 在第 i 天的喜悦值 a_i

第三行包含 n 个数 b_1,b2,...,b_n(1\le \left | b_i\right | \le 10^9),表示 \text{ffg} 在第 i 天的愤怒值 b_i

保证所有测试用例的 n 加起来的和不超过 2\times 10^5

输出描述:

对于每个测试用例,输出一个整数,表示 \text{zml} 玩原神的最大喜悦值(不被邪恶的 \text{ffg} 炖的前提下)。
示例1

输入

复制
1
4 6
8 4 3 1
5 2 -2 2

输出

复制
12

说明

对于样例 1\text{zml} 会选择第 1 天,第 3 天和第 4

- 第 1\text{ffg} 的愤怒值为 5\text{zml} 的喜悦值为 8

- 第 2 天由于 \text{zml} 不选择玩原神,所以 \text{ffg} 的愤怒值降为 0\text{zml} 的喜悦值仍然为 8

- 第 3\text{ffg} 的愤怒值为 -2\text{zml} 的喜悦值为 11

- 第 4\text{ffg} 的愤怒值为 -1\text{zml} 的喜悦值为 13

为什么 \text{zml} 不选择第 1 天,第 2 天和第 3 天呢?这连续 3 天的愤怒值之和是 5

这是因为假如选择第 1 天,第 2 天和第 3 天,\text{ffg} 在第 2 天愤怒值为 7\text{ffg} 就会把 \text{zml} 炖了,也就是说,假如 \text{ffg} 的愤怒值中途大于 m,即使后面降下来了也无济于事。
示例2

输入

复制
5
6 9
2 4 3 1 5 1
9 1 1 1 -4 2
5 16
8 7 8 4 -1
1 6 6 7 9
5 7
1 1 -1 -2 8
7 -5 9 3 1
6 6
5 8 -2 8 5 -4
7 -5 5 1 5 -2
4 15
-3 3 5 8
-3 10 7 -3

输出

复制
14
23
10
21
13