耕地
时间限制:1秒 内存限制:256M
【问题描述】
Farmer John 在他的农场上种植了 \(N(1≤N≤2⋅10^5)\) 株芦笋!然而,其中有一些植物存在基因差异,长得比其他植物快。第 \(i\) 株植物的初始高度为 \(h_i\) 英寸,之后每天,第 \(i\) 株植物长高 \(a_i\) 英寸。
FJ 更加钟爱其中的一些植物。他将给你一组由不同整数组成的数组 \(1..,t_N\),这个数组包含 0 到 \(N−1\) 的全部整数。他希望恰好有 \(t_i\) 株植物比第 \(i\) 株植物高。找到最少要经过多少天,才能满足 FJ 的要求,或者报告这个要求是不可能满足的。
【输入格式】
每个测试点中包含多组测试数据。
第一行为一个整数 \(T(1≤T≤10)\),代表测试数据组数。
对于每一组测试数据,第一行一个整数 \(N(1≤N≤2⋅10^5)\),表示植物数量。
第二行包含 \(N\) 个整数 \(h_i(1≤hi≤10^9)\),表示第 \(i\) 株植物的初始高度。
第三行包含 \(N\) 个整数 \(a_i(1≤a_i≤10^9)\),表示第 \(i\) 株植物每天增长的高度。
第四行包含 \(N\) 个不同的整数 \(t_i\),表示 FJ 给你的数组。
保证所有测试数据的 \(N\) 的和不超过 \(2⋅10^5\)。
【输出格式】
输出 \(T\) 行,每行表示一组测试数据的答案。如果要求不可能满足,输出 -1。请注意,由于这个问题涉及的整数大小较大,可能需要使用 64 位整数数据类型(例如,在 C/C++ 中使用 long long 类型)。
【输入输出样例1】
Input
6
1
10
1
0
2
7 3
8 10
1 0
2
3 6
10 8
0 1
2
7 3
8 9
1 0
2
7 7
8 8
0 1
2
7 3
8 8
1 0
Output
0
3
2
5
-1
-1
【样例1解释】
在第一组样例中,有 6 组测试数据。
在第一组测试数据中,只有一株植物,所以要求在第 0 天就已经满足。
在第二组测试数据中,需要让第一株植物比第二株植物矮。第 1 天后,它们的高度为 15,13;第 2 天后,它们的高度均为
23;第 3 天后,它们的高度为 31,33,这是满足要求的第一天。
第三组和第四组测试数据与第二组类似。
在第五组测试数据中,两株植物的初始高度均为 7 英寸,且每天均增长 8 英寸,所以它们的高度永远相同。因此,条件永远无法满足。
在第六组测试数据中,初始高度不满足要求且增长速度均相同,所以条件永远无法满足。
【输入输出样例2】
Input
2
5
7 4 1 10 12
3 4 5 2 1
2 1 0 3 4
5
4 10 12 7 1
3 1 1 4 5
2 4 3 1 0
Output
4
7
【样例1解释】
在第二组样例中,有 2 组测试数据。
在第一组测试数据中,第 4 天后的最终高度为 19,20,21,18,16。
在第二组测试数据中,第 7 天后的最终高度为 25,17,19,35,36。
【测试点性质】
测试点 \(3\) 满足 \(N≤2\)。
测试点 \(4−5\) 满足 \(N≤50,a_i ,h_i ≤10^3\)。
测试点 \(6−8\) 满足 \(N≤10^3\)。
【来源】
Mr.he
信息
- ID
- 2919
- 难度
- 9
- 分类
- (无)
- 标签
- 递交数
- 2
- 已通过
- 1
- 通过率
- 50%
- 上传者