B1. 食堂(简单版)
每个测试点时间限制:2 秒
内存限制:512 兆字节
这是该问题的简单版本。与困难版本的区别在于,此版本中 k=0。只有当你解决了该问题的所有版本时,才可以进行 hacking。
Ecrade 有两个由整数组成的序列 a0,a1,…,an−1 和 b0,b1,…,bn−1。保证序列 a 中所有元素的总和不超过序列 b 中所有元素的总和。
初始时,Ecrade 可以对序列 a 进行恰好 k 次修改。保证 k 不超过 a 的总和。每次修改如下:
- 选择一个下标 i(0≤i<n),满足 ai>0,并执行 ai:=ai−1。
之后,Ecrade 将对 a 和 b 依次执行以下三个操作,这称为 一轮操作:
- 对于每个 0≤i<n:
t:=min(ai,bi),
ai:=ai−t,
bi:=bi−t;
- 对于每个 0≤i<n:
ci:=a(i−1)modn;
- 对于每个 0≤i<n:
ai:=ci;
Ecrade 想知道,在对 a 进行恰好 k 次修改后,使得 a 中所有元素都变为 0 所需的最少轮数。
这看起来有点复杂,请你帮他解决这个问题!
输入格式
每个测试文件包含多个测试用例。第一行包含一个整数 t(1≤t≤2⋅104),表示测试用例的数量。接下来是每个测试用例的描述。
每个测试用例的第一行包含两个整数 n,k(1≤n≤2⋅105,k=0)。
第二行包含 n 个整数 a0,a1,…,an−1(1≤ai≤109)。
第三行包含 n 个整数 b0,b1,…,bn−1(1≤bi≤109)。
保证所有测试用例的 n 之和不超过 2⋅105。同时保证在每个测试用例中,a 的总和不超过 b 的总和,并且 k 不超过 a 的总和。
输出格式
对于每个测试用例,输出在对 a 进行恰好 k 次修改后,使得 a 中所有元素变为 0 所需的最少轮数。
示例
输入:
4
3 0
1 1 4
5 1 4
4 0
1 2 3 4
4 3 2 1
4 0
2 1 1 2
1 2 2 1
8 0
1 2 3 4 5 6 7 8
8 7 6 5 4 3 2 1
输出:
1
4
4
8
提示
在此版本中,Ecrade 无法对 a 进行修改。
第一个测试用例:
- 第一轮后,a=[0,0,0],b=[4,0,0]。
第二个测试用例:
- 第一轮后,a=[3,0,0,1],b=[3,1,0,0];
- 第二轮后,a=[1,0,0,0],b=[0,1,0,0];
- 第三轮后,a=[0,1,0,0],b=[0,1,0,0];
- 第四轮后,a=[0,0,0,0],b=[0,0,0,0]。