https://cdn.luogu.com.cn/upload/image_hosting/a99xubiy.png
写了个2分,求调,拿了30分TLE
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int binarySearch(const vector<int>& a, int x) {
int left = 0, right = a.size();
while (left < right) {
int mid = left + (right - left) / 2;
if (a[mid] < x) {
left = mid + 1;
} else {
right = mid;
}
}
return left;
}
void solve() {
int n, m;
cin >> n >> m;
vector<int> a(n);
for (int i = 0; i < n; i++) {
cin >> a[i];
}
sort(a+1, a+n+1));
while (m--) {
int x;
cin >> x;
int idx = binarySearch(a, x);
int start = max(0, idx - 5);
for (int i = start; i < idx; i++) {
cout << a[i] << " ";
}
int end = min(idx + 5, n);
for (int i = idx; i < end; i++) {
cout << a[i] << " ";
}
cout << endl;
}
}
int main() {
solve();
return 0;
}