求助站外题
  • 板块学术版
  • 楼主_colin1112_
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/6/15 19:00
  • 上次更新2023/10/23 13:05:53
查看原帖
求助站外题
904032
_colin1112_楼主2023/6/15 19:00

代码:

#include <bits/stdc++.h>
#define ll long long

using namespace std;
const int E=1e6+5;
ll n,m,cz;
ll arr[E];
ll search(ll left,ll right,ll a){
	ll sum=abs(arr[0]-a),j=0;
	while(left<=right){
		ll mid=(left+right)/2;
		if((abs(arr[mid]-a))<sum){
			sum=abs(arr[mid]-a);
			j=mid;
			right=mid-1;
		}
		else{
			left=mid+1;
		}
	}
	return arr[j];
}
int main(){
	cin >>n;
	for(int i=0;i<n;i++){
		cin >>arr[i];
	}
	cin >>m;
	for(int i=0;i<m;i++){
		cin >>cz;
		cout <<search(1,n-1,cz)<<endl;
	}
	return 0;
}

10pts QWQ

2023/6/15 19:00
加载中...