题解:P11797 【MX-X9-T1】『GROI-R3』Another Me

题解:P11797 【MX-X9-T1】『GROI-R3』Another Me

题目传送门

形式化题意

  • 所谓让 \(\max\limits_{i=1}^n \lvert a_i \rvert\) 最小,实际上就是令数列中的最小值和最大值的绝对值最接近。
  • 换句话说,最优操作就是令他们的绝对值相等。
  • 也就是说,这个数就是数轴上他们组成线段的中点,或是说这两个数的平均值。
  • 因此令数列中最大值为 \(a_{max}\),最小值为 \(a_{min}\),则答案为 $\lceil \frac{|a_{max}-a_{min}|}{2} \rceil $。

代码实现

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAXN=1e6+10;
ll T,a[MAXN],n;
int main() {
    cin>>n;
    for(int i=1;i<=n;i++){
		cin>>a[i];
	}
    sort(a+1,a+1+n);
    cout<<(abs(a[n]-a[1])+1)/2;
	return 0;
}
posted @ 2025-02-23 21:24  M1_Byte  阅读(42)  评论(0)    收藏  举报