fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public static void main(String[] args) {
  11. Scanner scanner = new Scanner(System.in);
  12. int n = scanner.nextInt();
  13. int[] nums = new int[n];
  14. for (int i = 0; i < n; i++) {
  15. nums[i] = scanner.nextInt();
  16. }
  17. int res = minimumOperationOptimised(nums);
  18. System.out.println(res);
  19. }
  20.  
  21.  
  22. public static int minimumOperationOptimised(int []nums){
  23. Map<Integer,Integer> map =new TreeMap<>((a,b)->b - a);
  24. int cnt=0;
  25. for(int n : nums){
  26. map.put(n,map.getOrDefault(n,0)+1);
  27. }
  28.  
  29. System.out.println(map);
  30. List<Map.Entry<Integer, Integer>> g = new ArrayList<>(map.entrySet());
  31. System.out.println(g);
  32.  
  33.  
  34. // Variables to calculate the steps
  35. int size = g.size();
  36. int step = 0;
  37.  
  38. for (int i = 0; i < size-1; i++) {
  39. int currEntryVal = g.get(i).getValue();
  40. step+=currEntryVal;
  41. int nextEntryValue = g.get(i+1).getValue();
  42. g.get(i+1).setValue(nextEntryValue+currEntryVal);
  43. }
  44. return step;
  45. }
  46.  
  47.  
  48.  
  49. public static int minimumOperation(int []nums){
  50.  
  51. Arrays.sort(nums);
  52. int s=0,e=nums.length-1;
  53. while(s<=e){
  54. int temp = nums[s];
  55. nums[s] = nums[e];
  56. nums[e] = temp;
  57. s++;
  58. e--;
  59. }
  60. int cnt=0;
  61. for(int j=0;j<nums.length;j++){
  62.  
  63. for(int i=1; i<nums.length;i++){
  64. if(nums[i-1] != nums[i]){
  65. nums[i-1] = nums[i];
  66. cnt++;
  67. }
  68.  
  69. }
  70. if(nums[0] == nums[nums.length-1]) break;
  71. }
  72. return cnt;
  73. }
  74.  
  75. }
Success #stdin #stdout 0.11s 54612KB
stdin
4
5 2 1 9
stdout
{9=1, 5=1, 2=1, 1=1}
[9=1, 5=1, 2=1, 1=1]
6