题解

思路

对于求最大值时只需求出所有点距离的和,记为 $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;
}