• + 0 comments
    public static int luckBalance(int canlose, List<List<Integer>> contests) {        
        List<Integer> prioritycontestluck = new ArrayList<>();
        List<Integer> optionalcontestluck = new ArrayList<>();
    
        for(int i=0;i<contests.size(); i++) {
            List<Integer> lst = contests.get(i);
            int priority = lst.get(1);
            int luck = lst.get(0);
            if(priority==1) {
                prioritycontestluck.add(luck);
            } else {
                optionalcontestluck.add(luck);
            }
        }
    
        Collections.sort(prioritycontestluck);
        int mustwin = prioritycontestluck.size()-canlose < 0 ? 0 : prioritycontestluck.size()-canlose;
        int maxluck = 0;
        for(int i=0;i<mustwin;i++) {
            maxluck -= prioritycontestluck.get(i);
        }
    
        for(int i=mustwin;i<prioritycontestluck.size();i++) {
            maxluck += prioritycontestluck.get(i);
        }
    
    
        for(int i=0;i<optionalcontestluck.size();i++) {
            maxluck += optionalcontestluck.get(i);
        }
        return maxluck;
    }