None
#include <vector>
 #include <algorithm>
 #include <iostream>
 using namespace std;
bool fo(vector<int>& a, int m, int k) {
	int s =0;
	for (int i =0,j =0; i<a.size(); i++) {
		while (a[i]- a[j]>m)j++;
		s += i -j;
	}
	return s >= k;
}
int f(vector<int>& a, int k) {
	sort(a.begin(), a.end());
	int g =0;
	int h = a.back()- a[0];
	while(g< h) {
		int m = g+(h -g)/ 2;
		if(fo(a,m, k)) {
			h = m;
		} else {
			g = m+1;
		}
	}
	return g;
}
int main() {
	int n,k;
	cin >> n >> k;
	vector<int> a(n,0);
	for (int i =o; i<n; i++) {
		cin >> a[i];
	}
	cout<< f(a,k)<< endl;
	return 0
}

假设输入总是合法的且|a[i]|≤10、n≤10000和1≤k≤n(n-1)/2,完成下面的判断题和单选题。

将第24行的“m”改为“m-1”输出有可能不变,而剩下情况为少1。(    )

A 正确
B 错误
赣ICP备20007335号-2