fork download
  1. import java.util.*;
  2. import java.io.*;
  3.  
  4. class Ideone{
  5. public static void main(String[] args) throws IOException {
  6. int t = Integer.parseInt(br.readLine());
  7.  
  8. while (t-- > 0) {
  9. int n = Integer.parseInt(br.readLine());
  10. String[] str = br.readLine().split(" ");
  11. int[] a = new int[n];
  12. for (int i = 0; i < n; i++) {
  13. a[i] = Integer.parseInt(str[i]);
  14. }
  15.  
  16. // prefix min cost: making all elements before i equal to a[i]
  17. int[] left = new int[n];
  18. int minVal = a[0];
  19. for (int i = 1; i < n; i++) {
  20. left[i] = left[i - 1] + (a[i] - minVal);
  21. minVal = Math.min(minVal, a[i]);
  22. }
  23.  
  24. // suffix min cost: making all elements after i equal to a[i]
  25. int[] right = new int[n];
  26. minVal = a[n - 1];
  27. for (int i = n - 2; i >= 0; i--) {
  28. right[i] = right[i + 1] + (a[i] - minVal);
  29. minVal = Math.min(minVal, a[i]);
  30. }
  31.  
  32. int res = Integer.MAX_VALUE;
  33. for (int i = 0; i < n; i++) {
  34. res = Math.min(res, left[i] + right[i]);
  35. }
  36.  
  37. System.out.println(res);
  38. }
  39. }
  40. }
Success #stdin #stdout 0.08s 52900KB
stdin
3
4
2 4 1 3
3
1 1 1
10
7 5 5 5 10 9 9 4 6 10
stdout
-1
0
4