#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 满足 1y<xk1 \le y < x \le k
  • 存在一个下标 ii 使得 qi=xyq_i=\left\lfloor \dfrac{x}{y} \right\rfloor(即向下取整的商);
  • 存在一个下标 jj 使得 rj=xmodyr_j = x \bmod y(即余数);

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

问:在给定的 qqrrkk 的条件下,最多可以执行多少次这样的操作?

输入格式

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

每个测试用例包含三行:

  • 第一行包含两个整数 nnkk,满足 1n21051\le n\le 2\cdot 10^52k10182\le k\le 10^{18}
  • 第二行包含 nn 个整数 q1,q2,,qnq_1,q_2,\dots,q_n,满足 1qi1091\le q_i\le 10^9
  • 第三行包含 nn 个整数 r1,r2,,rnr_1,r_2,\dots,r_n,满足 1ri1091\le r_i\le 10^9

数据保证所有测试用例中 n2105\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_169mod42=27=r169\bmod42=27=r_1,可做一次操作。

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

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

    • x=42,y=17x=42,y=174217=2=q3\lfloor\frac{42}{17}\rfloor=2=q_342mod17=8=r242\bmod17=8=r_2
    • x=41,y=16x=41,y=164116=2=q4\lfloor\frac{41}{16}\rfloor=2=q_441mod16=9=r141\bmod16=9=r_1
    • x=20,y=12x=20,y=122012=1=q5\lfloor\frac{20}{12}\rfloor=1=q_520mod12=8=r420\bmod12=8=r_4

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