题库/Y1149

#Y1149. 分组

    传统题 难度: 普及+ 标签>一本通树状数组点加与前缀和线段树的建树、点改与区间查询
时间限制1000 ms
内存限制256 MiB
通过率—0 / 0 次提交
题目描述 查看题解 开始编程Alt+E

Y1149 · 分组

退出在线编程模式
普及+ 读懂题意,让每一次思考成为成长。
时间限制1000 ms
内存限制256 MiB
通过率—0 / 0 次提交

题目描述

社区有nn个居民,每个居民有一定的地位和年龄,rir_i表示第ii个人的地位,aia_i表示第ii个人的年龄。 最近社区里要举行活动,要求几个人分成一个小组,小组中必须要有一个队长,要成为队长要满足以下条件: ①、队长在小组中的地位应该是最高的(可以并列第一); ②、小组中其他成员的年龄和队长的年龄差距不能超过KK。 有些人想和自己亲密的人组在同一个小组,同时希望所在的小组人越多越好。比如xx和yy想在同一个小组,同时希望他们所在的小组人越多越好,当然,它们也必须选一个符合上述条件的队长,那么问你,要同时包含xx和yy的小组,最多可以组多少人?

输入

第一行两个整数nn和KK。 接下来一行输入nn个整数:r1,r2,…,rnr_1, r_2, …, r_n。 接下来一行输入nn个整数:a1,a2,…,ana_1, a_2, …, a_n。 接下来输入QQ表示有QQ个询问。 接下来QQ行每行输入x,yx, y,表示询问:当xx和yy组在同一个小组,它们小组最多可以有多少人(xx和yy也有可能被选为队长,只要它们符合条件)。

输出

对于每个询问,输出相应的答案,每个答案占一行。 当xx和yy无法在同一组时,输出−1-1(比如xx的年龄是11, yy的年龄是100100,K=1K=1,无论谁当队长,xx和yy两者中,总会有人跟队长的年龄差距超过KK,那么输出−1-1)。

输入样例

5 1
1 5 4 1 2
4 4 3 2 2
4
5 3
2 3
2 5
4 1

输出样例

4
3
-1
4

提示

【样例解释】 询问1:当第55个人和第33个人想在一组时,小组成员可以有{1,3,4,5}\{1,3,4,5\},选择33当队长,而22不可以加入,因为22加入的话,55和22的年龄差距为22,超过K=1K=1了。 询问2:当第22个人和第33个人想在一组时,可以选择{1,2,3}\{1,2,3\}。 询问3:当22和55想在一起时,无法满足要求。 询问4:当44和11想在一起时,可以选择{1,3,4,5}\{1,3,4,5\}。 【数据规模】 对于20%的数据:2≤n≤100,0≤k≤100,1≤ri,ai≤100,1≤q≤1002≤n≤100,0≤k≤100,1≤r_i, a_i≤100,1≤q≤100。 对于40%的数据:2≤n≤1000,0≤k≤1000,1≤ri,ai≤1000,1≤q≤10002≤n≤1000,0≤k≤1000,1≤r_i, a_i≤1000,1≤q≤1000。 对于60%的数据:2≤n≤10^4,0≤k≤10^9,1≤r_i, a_i≤10^9,  1≤q≤10^4。 对于100%的数据:$2≤n≤10^5,0≤k≤10^9,1≤r_i, a_i≤10^9,1≤q≤10^5,1≤x, y≤n, x≠y$。

评测数据说明

本题使用按题意独立构造、以独立程序核对的训练数据及公开样例,共5个测试点,非原站或官方原始数据。总分100分。