maxlengthpair

PHOTO EMBED

Mon Aug 07 2023 04:12:03 GMT+0000 (Coordinated Universal Time)

Saved by @shru_09 #java

public class fractionKnapsack {
    public static void main(String[] args) {
        int we [] = {15,40,30,35,30};
        int val [] = {80,80,20,45,30};
        int cap =75;

        double ratio[][] = new double[val.length][2];

        for(int i=0;i<we.length;i++){
            ratio[i][0] =i;
            ratio[i][1] = val[i]/(double)we[i];
        }

        Arrays.sort(ratio, Comparator.comparingDouble(o -> o[1]));
        int pro=0;

        for(int i= ratio.length-1;i>=0;i--){
            int ind = (int) ratio[i][0];
            if(cap >=we[ind]){
                cap-=we[ind];
                pro+=val[ind];
            }else{
                pro+= ratio[i][1]*cap;
                cap=0;
                break;
            }
        }
        System.out.println(pro);
}
content_copyCOPY