一番近い要素を検索

968 ワード

与えられた値に最も近い要素を検索します.
Inputの最初の行は、非ドロップシーケンス長の整数nを含む.1<=n<=100000第二行はn個の整数を含み、非降順シーケンスの各要素である.すべての要素のサイズは0-1,000,000,000の間にあります.3行目は、問合せする所定の値の個数を含む整数mです.1<=m<=10000次にm行、各行の整数が、要素に最も近い所与の値を問い合わせるために行われます.与えられた値のサイズは全部0-1,000,000,000の間です.Output m行は、各行の整数で、指定された値に最も近い要素値の入力順序を維持します.複数の値が条件を満たす場合は、最小の一つを出力します.Sample Input
3
2 5 8
2
10
5
Sample Output
8
5
acコード参照リンク
#include 
using namespace std;
const int MAXN = 1e5+6;
int a[MAXN] = {};
 
int main() {
	int n,m;
	scanf("%d",&n);
	for(int i=0;i=a[n-1]){
			printf("%d
",a[n-1]); } else{ int l=0,r=n; while(lt){ r=min; }else{ l=min+1; } } int ans=l;// t // int ans=upper_bound(a,a+n,t)-a; if(a[ans]-t