Search⌘ K
AI Features

Solution: Maximum Average Pass Ratio

Explore a greedy algorithm with max heaps to maximize the average pass ratio across multiple classes by optimally distributing extra students. Understand how to calculate potential gains, update class statistics dynamically, and achieve an efficient time complexity using heap operations. This lesson guides you through implementing the solution step-by-step.

Statement

A school has several classes of students, each taking a final exam. You are provided a 2D integer array, classes, where classes[i] = [passi, totali]. Here, passi represents the number of students in the ithi^{th} class who are expected to pass the exam, and totali represents the total number of students in that class.

Additionally, you are given an integer, extraStudents, which denotes the number of brilliant extra students guaranteed to pass their exams. These students can be assigned to any class, and your goal is to distribute them to maximize the average pass ratio across all classes.

The pass ratio for a class is defined as the ratio of the number of students passing to the total number of students in the class:

The average pass ratio is the sum of the pass ratios of all classes divided by the total number of classes:

Your task is to return the maximum achievable average pass ratio after assigning all extraStudents to the classes. Answers within 10510^{-5} of the actual answer will be accepted.

Constraints:

  • 11 \leq ...