题解
思路
对于求最大值时只需求出所有点距离的和,记为 $sum$ , 输出 $sum$
当求最小值时,只需用 $sum - max$ ( $max$ 为最大值),注意这里有一个细节:当 $max \leq sum$ 时,输出 $0$ ,因为此时必定能构造出 $n$ 与 $0$ 重合
标程
import java.util.Scanner;
public class Main {
static int n , tot , maxx;
public static void main(String[] args) {
Scanner Scan = new Scanner(System.in);
n = Scan.nextInt();
for(int i = 1;i <= n;i++) {
int temp;
temp = Scan.nextInt();
tot += temp;
if(temp >= maxx) maxx = temp;
}
System.out.println(tot);
tot -= maxx;
if(tot >= maxx) {
System.out.println("0");
}
else System.out.println(maxx - tot);
Scan.close();
}
}
#include <bits/stdc++.h>
using namespace std;
int n , sum , maxx , tot;
int main() {
scanf("%d" ,&n);
while(n--) {
int temp;
scanf("%d" ,&temp);
tot += temp;
maxx = max(maxx , temp);
}
printf("%d\n" ,tot);
tot -= maxx;
if(tot >= maxx) {
puts("0");
}
else printf("%d" ,maxx - tot);
return 0;
}