public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[][] arr = new int[n][2]; for (int i = 0; i < n; i++) { arr[i][0] = sc.nextInt(); arr[i][1] = sc.nextInt(); } Arrays.sort(arr, (v1, v2) -> (v1[1] - v2[1])); long ans = help(arr); System.out.println(ans); } private static long help(int[][] arr) { long sum = 0; for (int i = 0; i < arr.length; i++) { if (arr[i][1] == 0) { sum += arr[i][0]; arr[i][0] = 0; } else { break; } } Arrays.sort(arr,(v1,v2)->(v2[0]-v1[0])); for (int i = 0; i < arr.length; i++) { if(arr[i][0] == 0) break; if(arr[i][0] > sum){ sum += arr[i][0]; }else{ sum*=2; } } return sum; } }