题目连接
显然对于n-k>1的时候,我们先排个序,然后优先把大的数操作掉,前面小的数就不会动,那么中位数就一定最小。否则必须全部动。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--){
int n,k;
cin>>n>>k;
int a[200005];
long long sum=0;
for(int i=1;i<=n;i++){
cin>>a[i];
sum+=a[i];
}
sort(a+1,a+n+1);
if(n-k>1){
cout<<a[(n-k+1)/2]<<endl;
}
else{
cout<<sum<<endl;
}
}
return 0;
}