解説
先に言う。答えはAの要素の最大値と最小値の差である。
では、なぜそうなるかの説明をする。
まず、$K\leq 3$である。そのため、{Aの最小値}{Aの最大値}{その他}...という組み合わせができるはず。
また、平均は大きいものと小さいものがあったら、その真ん中に行くという優柔不断なやつ。そのため、できるだけ平均の差を大きくしたいのならAの最小値単体とAの最大値単体で組めばいいじゃないか。
そういう理論で解ける。
そしてコードを楽して書きたい。そういう人もいるのではないか。
簡単な解法なら、Aを昇順ソートする。そして、cout<<$A_{N-1}-A_0$<<endl;をする。
必ず最小値は$A_0$,最大値は$A_{N-1}$にくるので、その差を求めればAC。
C++23での解法例
#include <bits/stdc++.h>
using namespace std;
int main(){
int n,k;cin>>n>>k;
vector<int> a(n);
for(int i=0;i<n;i++)cin>>a[i];
sort(a.begin(),a.end());
cout<<a[n-1]-a[0]<<endl;
}