#CF1922D. 狂暴怪物

狂暴怪物

D. 狂暴怪物

时间限制:每个测试 22
内存限制:每个测试 256256 MB

Monocarp 又在玩电脑游戏了。猜猜他在做什么?没错,杀怪物。

nn 个怪物排成一排,编号从 11nn。第 ii 个怪物有两个参数:攻击力 aia_i 和防御力 did_i。为了杀死这些怪物,Monocarp 对它们施放了狂暴咒语,于是它们开始互相攻击,而不是攻击 Monocarp 的角色。

战斗共进行 nn 轮。每一轮会发生以下事件:

  • 首先,每个存活的怪物 ii 会对左边最近的存活怪物(如果存在)和右边最近的存活怪物(如果存在)各造成 aia_i 点伤害;
  • 然后,在本轮中受到的总伤害严格大于其防御力 djd_j 的存活怪物 jj 会死亡。即,第 jj 个怪物死亡当且仅当 dj<d_j < 本轮它受到的伤害总和。

对于每一轮,请计算该轮中死亡的怪物数量。

输入

第一行包含一个整数 tt1t1041 \le t \le 10^4)——测试用例的数量。

每个测试用例由三行组成:

  • 第一行包含一个整数 nn1n31051 \le n \le 3 \cdot 10^5);
  • 第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n1ai1091 \le a_i \le 10^9);
  • 第三行包含 nn 个整数 d1,d2,,dnd_1, d_2, \dots, d_n1di1091 \le d_i \le 10^9)。

附加输入限制:所有测试用例的 nn 之和不超过 31053 \cdot 10^5

输出

对于每个测试用例,输出 nn 个整数。第 ii 个整数应等于第 ii 轮中死亡的怪物数量。

样例

输入

3
5
3 4 7 5 10
4 9 1 18 1
2
2 1
1 3
4
1 1 2 4
3 3 4 2

输出

3 1 0 0 0 
0 0 
1 1 1 0 

说明

以第一个测试用例为例:

第一轮发生以下情况:

  • 怪物 11 对怪物 22 造成 33 点伤害;
  • 怪物 22 对怪物 11 和怪物 33 各造成 44 点伤害;
  • 怪物 33 对怪物 22 和怪物 44 各造成 77 点伤害;
  • 怪物 44 对怪物 33 和怪物 55 各造成 55 点伤害;
  • 怪物 55 对怪物 44 造成 1010 点伤害;
  • 怪物 11 未死亡,因受到 44 点伤害而防御为 44
  • 怪物 22 死亡,因受到 1010 点伤害而防御为 99
  • 怪物 33 死亡,因受到 99 点伤害而防御为 11
  • 怪物 44 未死亡,因受到 1717 点伤害而防御为 1818
  • 怪物 55 死亡,因受到 55 点伤害而防御为 11

第一轮后,怪物 1144 存活。

第二轮发生以下情况:

  • 怪物 11 对怪物 44 造成 33 点伤害;
  • 怪物 44 对怪物 11 造成 55 点伤害;
  • 怪物 11 死亡,因受到 55 点伤害而防御为 44
  • 怪物 44 未死亡,因受到 33 点伤害而防御为 1818

接下来的三轮中,仅剩怪物 44 存活,因此无事发生。