两道编程,不难。题1:import java.util.*;// 注意类名必须为 Main, 不要有任何 package xxx 信息public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 // while (in.hasNextInt()) { // 注意 while 处理多个 case // int a = in.nextInt(); // int b = in.nextInt(); // System.out.println(a + b); // } String[] nk = in.nextLine().split(&quot; &quot;); int n = Integer.parseInt(nk[0]); int k = Integer.parseInt(nk[1]); int[] nums = new int[n]; String[] numStr = in.nextLine().split(&quot; &quot;); for (int i = 0; i < n; i++) { nums[i] = Integer.parseInt(numStr[i]); } System.out.println(maxDiffSum(nums, n, k)); } private static long maxDiffSum(int[] nums, int n, int k) { long ans = 0; Arrays.sort(nums); int pairNum = Math.min(n - k, k); for(int i = 0; i < pairNum; i++) { ans += nums[n - i - 1] - nums[i]; } return ans; }}题2:import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 // while (in.hasNextInt()) { // 注意 while 处理多个 case // int a = in.nextInt(); // int b = in.nextInt(); // System.out.println(a + b); // } String[] nmk = in.nextLine().split(&quot; &quot;); int n = Integer.parseInt(nmk[0]); int m = Integer.parseInt(nmk[1]); int k = Integer.parseInt(nmk[2]); System.out.println(cal(n, m, k)); } private static int cal(int n, int m, int k) { // 需要保证至少分到一个 if (m < n) return 0; int ans = 1; m -= n; int l = k - 1, r = k - 1; while (true) { int need = r - l + 1; m -= need; if (m < 0) break; ans++; r = r == n - 1 ? r : r + 1; l = l == 0 ? l : l - 1; } return ans; }}#b站##笔试#