题目描述
同一个数轴X上有两个点的集合A={A1, A2, …, Am}和B={B1, B2, …, Bn},Ai和Bj均为正整数,A、B已经按照从小到大排好序,
A、B均不为空,给定一个距离R(正整数),列出同时满足如下条件的所有(Ai, Bj)数对:
- Ai <= Bj
- Ai, Bj之间的距离小于等于R
- 在满足1,2的情况下,每个Ai只需输出距离最近的Bj
- 输出结果按Ai从小到大的顺序排序
输入描述
第一行三个正整数m,n,R
第二行m个正整数,表示集合A
第三行n个正整数,表示集合B
输入限制:
1<=R<=100000, 1<=n,m<=100000, 1<=Ai,Bj<=1000000000
输出描述
每组数对输出一行Ai和Bj,以空格隔开
用例
| 输入 | 4 5 5 1 5 5 10 1 3 8 8 20</ |
本文介绍了华为在线开发者(OD)机试中的一道事件推送问题,涉及两个已排序点集在一定距离限制内的匹配。提出了二分查找和同向双指针两种解法,其中双指针法能达到线性时间复杂度。文章包含详细的题目描述、输入输出格式、解题思路及Python算法源码。
订阅专栏 解锁全文
1107

被折叠的 条评论
为什么被折叠?



