Решение
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
import kotlin.math.abs
fun main() {
val reader = BufferedReader(InputStreamReader(System.`in`))
val writer = BufferedWriter(OutputStreamWriter(System.out))
val (n, k) = reader.readLine().trim().split("\\\\s+".toRegex()).map(String::toInt)
val firstArray = reader.readLine().trim().split("\\\\s+".toRegex()).map(String::toInt)
val secondArray = reader.readLine().trim().split("\\\\s+".toRegex()).map(String::toInt)
fun findClosest(target: Int): Int {
var left = 0
var right = firstArray.size - 1
while (left < right) {
val mid = (left + right) / 2
if (firstArray[mid] < target) left = mid + 1 else right = mid
}
if (left == 0) return firstArray[0]
if (left == firstArray.size) return firstArray.last()
val before = firstArray[left - 1]
val after = firstArray[left]
return if (abs(target - before) <= abs(after - target)) before else after
}
secondArray.forEach { writer.write("${findClosest(it)}\\n") }
writer.flush()
writer.close()
reader.close()
}