【编程题目 |100分】ABR 车路协同场景【2021, 2022 H1 考试题】
时间限制:C/C++ 1秒,其他语言 2秒
空间限制:C/C++262144K,其他语言524288K
64bit IO Format:%lld
本题可使用本地IDE编码,不能使用本地已有代码,无跳出限制,
编码后请点击”保存并调试”按钮进行代码提交。
■ 题目描述
【ABR 车路协同场景】
数轴×有两个点的序列 A={A1, A2,…Am}和 B={B1,B2,.Bn}, A 和 Bj 均为正整数, A、 B 已经从小到大排好序, A、 B 均肯定不为空,
给定一个距离 R(正整数),列出同时满足如下条件的所有(Ai, Bj)数对:
条件
1) Ai <= Bj
2) Ai,Bj 距离小于等于 R,但如果 Ai 找不到 R 范围内的 Bj,则列出距它最近的 1 个 Bj,当然此种情况仍然要满足 1,
但如果仍然找不到,就丢弃 Ai。
原型
车路协同场景,一条路上发生了有很多事件( A),要通过很多路测设备( B)广播给路上的车,需要给每个事件找到一个合适的路测设备去发送广播消息。
输入描述
按照人易读的格式输入一行数据,参见输入样例,其中“ ABR={, }”中的每个字符都是关键分割符,输入中无空格,其他均为任意正整数,
输入 A 和 B 已经排好序, A 和 B 的大小不超过 50,正整数范围不会超过 65535。
输出描述
( Ai,Bj)数对序列,排列顺序满足序列中前面的 Ax<=后面的 Ay,前面的 Bx<=后面的 By,
因为输入 A 和 B 已经排好序,所以实际上输出结果不用特意排序,排序不是考察点。
示例 1 输入输出示例仅供调试,后台判题数据一般不包含示例
输入
A={1,3,5},B={2,4,6},R=1
输出
(1,2)(3,4)(5,6)
CPP
#include<bits/stdc++.h> using namespace std; void SplitInt(string input, vector<int> &output, char patten); void Split(string input, vector <string> &output, string pattern);
此处内容需要权限查看
会员免费查看