Plus Minus

  • + 0 comments

    class Result { int len_arr = arr.size(); Collections.sort(arr); int count = 0; int negative = 0; int positive = 0; int zero = 0;

    int index = Collections.binarySearch(arr,0);
    
    if (index < 0){
        if (arr.get(0) > 0 && arr.get(len_arr - 1) > 0) positive = len_arr;
        else if (arr.get(0) < 0 && arr.get(len_arr - 1) < 0) negative = len_arr;
        else{
            for(int value : arr){
            if(value > 0) break;
            count++;
        }
        negative = count;
        positive = len_arr - (count);
        }
    }
    else{
        int left = index;
        int right = index;
    
        while( left >= 0 && arr.get(left) == 0 && left >= 0) left--;
        while( right < len_arr && arr.get(right) == 0 && right < len_arr) right++;
    
        for(int i = left + 1; i < right; i++) zero += 1;
        negative = left + 1;
        positive = len_arr - (right);
    }
    
    double ratio_negative = (double)negative/len_arr;
    double ratio_zero = (double)zero/len_arr;
    double ratio_positive = (double)positive/len_arr;
    System.out.printf("%.6f\n",ratio_positive);
    System.out.printf("%.6f\n",ratio_negative);
    System.out.printf("%.6f\n",ratio_zero);
    
    }
    

    }