fork download
  1. import java.util.*;
  2.  
  3. public class Main {
  4. public static void main(String[] args) {
  5. Scanner scanner = new Scanner(System.in);
  6. int t = scanner.nextInt();
  7. while (t-- > 0) {
  8. int n = scanner.nextInt();
  9. int[] arr = new int[n];
  10. for (int i = 0; i < n; i++) {
  11. arr[i] = scanner.nextInt();
  12. }
  13. System.out.println(minOperationsToIncreaseMedian(arr));
  14. }
  15. }
  16.  
  17. public static int minOperationsToIncreaseMedian(int[] arr) {
  18. int n = arr.length;
  19. Arrays.sort(arr);
  20. int medianIndex = n / 2;
  21. int median = arr[medianIndex];
  22. int operations = 0;
  23.  
  24. // If median is already at the end, return 0
  25. if (median == arr[n - 1]) {
  26. return 0;
  27. }
  28.  
  29. // If median is at the start, need to increase all elements from start to medianIndex
  30. if (median == arr[0]) {
  31. for (int i = 0; i < medianIndex; i++) {
  32. operations += median - arr[i];
  33. }
  34. return operations;
  35. }
  36.  
  37. // If median is in between, need to increase all elements from medianIndex onwards
  38. // for (int i = medianIndex; i < n; i++) {
  39. // operations += median - arr[i];
  40. // }
  41.  
  42. return operations;
  43. }
  44. }
  45.  
Success #stdin #stdout 0.12s 54548KB
stdin
8
3
2 2 8
4
7 3 3 1
1
1000000000
5
5 5 5 4 5
6
2 1 2 3 1 4
2
1 2
2
1 1
4
5 5 5 5
stdout
0
0
0
0
0
0
0
0