第二题,小朱朱的入职问题,哪有问题?
#include <iostream>
#include <vector>
#include <algorithm>
#define INF 999
using namespace std;
int main() {
long n, m, k;
cin >> n >> m >> k;
vector<long> nums(n, 0);
for (long i = 0; i < n; i++) {
cin >> nums[i];
}
sort(nums.begin(), nums.end());
long test;
vector<long> minVec;
vector<long> maxVec;
long time = m;
while (time--) {
cin >> test;
long j = 0;
for (; j < nums.size(); j++) {
if (test <= nums[j]) {
break;
}
}
long left = j-1;
long right = j;
long temp;
long maxVal = 0;
long minVal = INF;
long leftval, rightval;
for (long i = 0; i < k; i++) {
if (left >= 0) {
leftval = nums[left];
}
else {
leftval = -INF;
}
if (right < nums.size() ) {
rightval = nums[right];
}
else {
rightval = INF;
}
if ((test - leftval) <= (rightval - test)) {
temp = nums[left];
left--;
} else {
temp = nums[right];
right++;
}
if (temp > maxVal) {
maxVal = temp;
}
if (temp < minVal) {
minVal = temp;
}
}
minVec.push_back(minVal);
maxVec.push_back(maxVal);
}
for (long i = 0; i < m; i++ ) {
cout << minVec[i] << " " << maxVec[i] << endl;
}
return 0;
}