#CF1873F. Money Trees
Money Trees
题目描述
Luca 站在一排共有 棵树前。第 棵树上有 个果实,高度为 。
他想选择一个连续子数组 ,使得对于每个 (), 能被 整除。然后他会收集该子数组中所有树上的果实(即收集 个果实)。但是,如果他收集的果实总数超过 ,他就会被抓住。
Luca 能选择的最长连续子数组长度是多少,且不会被抓住?
若 能被 整除,则 是整数。
输入格式
第一行包含一个整数 (),表示测试用例的数量。
每个测试用例的第一行包含两个用空格分隔的整数 和 (;),分别表示树的数量和 Luca 能收集而不被抓住的最大果实数。
每个测试用例的第二行包含 个用空格分隔的整数 (),表示第 棵树上的果实数。
每个测试用例的第三行包含 个用空格分隔的整数 (),表示第 棵树的高度。
所有测试用例中 的总和不超过 。
输出格式
对于每个测试用例,输出一个整数,表示满足条件的最长连续子数组的长度。如果不存在这样的子数组,输出 。
样例
5
5 12
3 2 4 1 8
4 4 2 4 1
4 8
5 4 1 2
6 2 3 1
3 12
7 9 10
2 2 4
1 10
11
1
7 10
2 6 3 1 5 10 6
72 24 24 12 4 4 2
3
2
1
0
3
样例说明
在第一个测试用例中,Luca 可以选择 且 的子数组。
在第二个测试用例中,Luca 可以选择 且 的子数组。
在第三个测试用例中,Luca 可以选择 且 的子数组。
由 ChatGPT 4.1 翻译
来源
Codeforces 1873F,英文题名 Money Trees。