• + 0 comments
        public static int luckBalance(int k, List<List<Integer>> contests) {       
            // Categorize importants and count unimportant
            int luck = 0;
            List<Integer> importantContests = new ArrayList<>();
    
            for (List<Integer> arr : contests) {
                int luckValue = arr.get(0);
                int isImportant = arr.get(1);
            
                if (isImportant == 1) {
                    importantContests.add(luckValue);
                } else {
                    luck += luckValue;
                }
            }
            
            // Sort by huge value
            importantContests.sort(Collections.reverseOrder());
            
            // Plus or minus 
            for (int i = 0; i < importantContests.size(); i++) {
                luck += (i < k) ? importantContests.get(i) : -importantContests.get(i);
            }
    
            return luck;
        }