1
1

yukicoder No.21 平均の差 解説

Last updated at Posted at 2024-07-23

問題文

解説

先に言う。答えは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;
}
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1