A62005. 2023年CSP-S1阅读程序题3:01 #include <vector>
编程题
知识点
题目描述
2023年CSP-S1阅读程序题3:
01 #include <vector>
02 #include <algorithm>
03 #include <iostream>
04
05 using namespace std;
06
07 bool fo(vector<int>& a, int m, int k){
08 int s =0;
09 for(int i =0,j =0; i<a.size(); i++){
10 while (a[i]- a[j]>m)j++;
11 s += i -j;
12 }
13 return s >= k;
14}
15
16 int f(vector<int>& a, int k){
17 sort(a.begin(), a.end());1
8
19 int g =0;
20 int h = a.back()- a[0];
21 while(g< h){
22 int m = g+(h -g)/ 2;
23 if(fo(a,m, k)){
24 h = m;
25 } else {
26 g = m+1;27 }28 }29
30 return g;31}32
33 int main(){34 int n,k;35 cin >> n >> k;36 vector<int> a(n,0);37 for(int i =o; i<n; i++){
38 cin >> a[i];
39 }
40 cout<< f(a,k)<< endl;
41 return 0
42}假设输入总是合法的且|a[i]l≤108、n≤10000和1≤k≤n(n-1)/2,完成下面的判断题和单选题: