有优先级,比如sort函数sort(a+1,a+n+1);这样写法的cmp等同于
int cmp(int x,int y){
return x<y;
}
按题目要求我们可以把第一abs(x-k)<abs(y-k),第二也就是差值相等优先选择价格低一点的也就是x<y,具体实现看代码,题目要求按从小输出,自定义排序完之后,在对前k个进行sort即可
放暑假了,小红决定到某旅游景点游玩,他在网上搜索到了各种价位的酒店(长度为 n 的数组 A),他的心理价位是 x 元,
请帮他筛选出 k 个最接近 x 元的酒店(n≥k>0),并由低到高打印酒店的价格。
备注
第一行:n,k,x
第二行:A[0]A[1]A[2]…A[n−1]
从低到高打印筛选出的酒店价格
输入
10 5 6
1 2 3 4 5 6 7 8 9 10
输出
4 5 6 7 8
说明
数组长度 n=10,筛选个数 k=5,目标价位 x=6
输入
10 4 6
10 9 8 7 6 5 4 3 2 1
输出
4 5 6 7
说明
数组长度 n=10,筛选个数 k=4,目标价位 x=6
当4和8时距离 x 相同时,优先选择价格低的4
输入
6 3 1000
30 30 200 500 70 300
输出
200 300 500
说明