Lily's Homework

  • + 1 comment
    import java.io.*;
    import java.util.*;
    import java.text.*;
    import java.math.*;
    import java.util.regex.*;
    import java.util.Collections.*;
    public class Solution {
    
        public static void main(String[] args) {
            /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
            Scanner sc = new Scanner(System.in);
            int n,count=0,count1=0;
            n= sc.nextInt();
             int []b= new int[n]; 
           Integer []a= new Integer[n]; 
            int []c= new int[n];
          HashMap map = new  HashMap();
           HashMap map1= new HashMap();
            for(int i=0;i<n;i++){
                int num=sc.nextInt();
                map.put(num,i);
                map1.put(num,i);
                a[i]=num;
                b[i]=num;
                c[i]=num;
            }
            
           Arrays.sort(a);
           
               for(int i=0;i<n;i++){
                   if(a[i]!=b[i]){
                       count++;
                     int temp= b[(int) map.get(a[i])];
                       int x=b[(int) map.get(a[i])];
                      b[(int) map.get(a[i])]=b[i];
                       b[i]=temp;
                      map.put(b[(int) map.get(a[i])],(int) map.get(b[i]));
                       
                   }
               }
            Arrays.sort(a,Collections.reverseOrder());
            for(int i=0;i<n;i++){
                   if(a[i]!=c[i]){
                       count1++;
                     int temp= c[(int) map1.get(a[i])];
                       int x=c[(int) map1.get(a[i])];
                      c[(int) map1.get(a[i])]=c[i];
                       c[i]=temp;
                      map.put(c[(int) map1.get(a[i])],(int) map1.get(b[i]));
                       
                   }
               }
            if(count1>count)
               System.out.println(count);
            else
                 System.out.println(count1);
        }
    }
    

    Doesnt run for test case 2 3 and 9 Why???