#787. 商和余数

商和余数

题目描述

给定两个长度为 nn 的整数数组 q=(q1,q2,…,qn)q=(q_1,q_2,\dots,q_n) 和 r=(r1,r2,…,rn)r=(r_1,r_2,\dots,r_n),以及一个整数上界 kk。

你可以进行若干次以下操作(次数不限):

  • 选取两个整数 x,yx,y 满足 1≤y<x≤k1 \le y < x \le k;
  • 存在一个下标 ii 使得 qi=⌊xy⌋q_i=\left\lfloor \dfrac{x}{y} \right\rfloor(即向下取整的商);
  • 存在一个下标 jj 使得 rj=x mod yr_j = x \bmod y(即余数);

若满足以上条件,则从数组 qq 中删除一个值为 ⌊xy⌋\left\lfloor \dfrac{x}{y} \right\rfloor 的元素(若有多个,只删除其中一个),并从数组 rr 中删除一个值为 x mod yx\bmod y 的元素(同样只删除一个)。每次删除视为一次操作。

问:在给定的 qq、rr 和 kk 的条件下,最多可以执行多少次这样的操作?

输入格式

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

每个测试用例包含三行:

  • 第一行包含两个整数 nn 和 kk,满足 1≤n≤2⋅1051\le n\le 2\cdot 10^5,2≤k≤10182\le k\le 10^{18};
  • 第二行包含 nn 个整数 q1,q2,…,qnq_1,q_2,\dots,q_n,满足 1≤qi≤1091\le q_i\le 10^9;
  • 第三行包含 nn 个整数 r1,r2,…,rnr_1,r_2,\dots,r_n,满足 1≤ri≤1091\le r_i\le 10^9。

数据保证所有测试用例中 ∑n≤2⋅105\sum n \le 2\cdot 10^5。

输出格式

对每个测试用例,输出一行,包含一个整数——在该测试用例下能够执行的最多操作次数。

样例输入

3
1 100
1
27
3 10
5 6 5
7 1 7
5 42
5 4 2 2 1
9 8 9 8 100

样例输出

1
0
3

说明

样例解释

  • 第一个测试用例:可以取 x=69,y=42x=69,y=42,则 ⌊6942⌋=1=q1\lfloor \frac{69}{42}\rfloor=1=q_1 且 69 mod 42=27=r169\bmod42=27=r_1,可做一次操作。

  • 第二个测试用例:不存在满足条件的 (x,y)(x,y),因此不能做任何操作。

  • 第三个测试用例:可以依次做三次操作(示例之一):

    • x=42,y=17x=42,y=17:⌊4217⌋=2=q3\lfloor\frac{42}{17}\rfloor=2=q_3,42 mod 17=8=r242\bmod17=8=r_2;
    • x=41,y=16x=41,y=16:⌊4116⌋=2=q4\lfloor\frac{41}{16}\rfloor=2=q_4,41 mod 16=9=r141\bmod16=9=r_1;
    • x=20,y=12x=20,y=12:⌊2012⌋=1=q5\lfloor\frac{20}{12}\rfloor=1=q_5,20 mod 12=8=r420\bmod12=8=r_4。

    执行后剩余 q=[5,4]q=[5,4],r=[9,100]r=[9,100],无法再继续。