Дистанционная подготовка: Ошибка на 4 и 5 тестах
Re: Ошибка на 4 и 5 тестах
от Глеб Третьяков - Четверг 7 Август 2014, 13:16
  #include<iostream>
#include<cmath>

using namespace std;

int main(){


int n, k,p, now, l, r, j;
cin >> n >> p;
int a[100001];
for (int i = 0; i < n; i++) cin >> a[i];
for (int i = 0; i < p; i++){
l = 0;
r = n - 1;
cin >> k;
while (r - l>1){
now = (l + r) / 2;
if (k > a[now]){
l = now;
if (abs(k - a[r]) < abs(k - a[l])) j = a[r]; else j = a[l];
}
else {
r = now;
if (abs(k - a[r]) < abs(k - a[l])) j = a[r]; else j = a[l];
}
}

if (k == a[r]) { cout << k << endl; }
else{ cout << j << endl; }
}

return 0;
}