题目 1745

分组

查看题解 ↗GitHub ↗如何评测
题号
1745
时间限制
1000 ms
内存限制
256 MB
标签
数据结构
来源
信息学奥赛一本通 · 高手训练篇·四、数据结构(高手训练)

【题目描述】

社区有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≤104,0≤k≤109,1≤ri,ai≤109,1≤q≤1042≤n≤10^4,0≤k≤10^9,1≤r_i, a_i≤10^9, 1≤q≤10^4。 对于100%的数据:2≤n≤105,0≤k≤109,1≤ri,ai≤109,1≤q≤105,1≤x,y≤n,x≠y2≤n≤10^5,0≤k≤10^9,1≤r_i, a_i≤10^9,1≤q≤10^5,1≤x, y≤n, x≠y。

数据下载

题目 1745 的公开数据

正在读取文件列表…

常用命令

题目 1745 的 ROJ 命令

以下命令默认使用全局安装的 ROJ Skill,请在终端中直接执行;如果修改过 AGENT_HOME,请将命令中的 ~/.agents 替换为对应目录。