两道编程,不难。题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;}}