#include <iostream>
void findKClosestElements(int arr[], int size, int k, int value) {
int left = 0;
int right = size - 1;
while (right - left >= k) {
if (abs(arr[left] - value) > abs(arr[right] - value)) {
left++;
}
else {
right--;
}
}
while (left <= right) {
std::cout << arr[left] << " ";
left++;
}
}
int main(void)
{
int arr[] = {6, 10, 12, 15, 17, 18, 20, 25, 28};
int value = 16, k = 4;
int size = sizeof(arr) / sizeof(arr[0]);
findKClosestElements(arr, size, k, value);
}
/*
run:
12 15 17 18
*/