Related Articles
Maximum students to pass after giving bonus to everybody and not exceeding 100 marks
• Last Updated : 03 Jan, 2019

Given an array which represents the marks of students. The passing grade is and maximum marks that a student can score is , the task is to maximize the student that are passing the exam by giving bonus marks to the students.
Note that if a student is given bonus marks then all other students will also be given the same amount of bonus marks without any student’s marks exceeding . Print the total students that can pass the exam in the end.

Examples:

Input: arr[] = {0, 21, 83, 45, 64}
Output: 3
We can only add maximum of 17 bonus marks to the marks of all the students. So, the final array becomes {17, 38, 100, 62, 81}
Only 3 students will pass the exam.

Input: arr[] = {99, 50, 46, 47, 48, 49, 98}
Output: 4

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach: Let be the maximum marks of a student among all others then the maximum possible bonus marks that can be given will be . Now for every student whose marks + (100 – M) ≥ 50, increment the count. Print the count in the end.

Below is the implementation of the above approach:

## C++

 `// C++ Implementation of above approach. ``#include ``#include``using` `namespace` `std;`` ` `// Function to return the number ``// of students that can pass ``int` `check(``int` `n, ``int` `marks[])``{``    ``// maximum marks ``    ``int``* x = std::max_element(marks,marks+5); `` ` `    ``// maximum bonus marks that can be given ``    ``int` `bonus = 100-(``int``)(*x);``    ``int` `c = 0;``    ``for``(``int` `i=0; i= 50)``            ``c += 1;``    ``}``    ``return` `c;``}``     ` `// Driver code``int` `main()``{``int` `n = 5;``int` `marks[] = {0, 21, 83, 45, 64}; ``cout<

## Java

 `// Java Implementation of above approach. ``import` `java.util.*;``class` `GFG{``// Function to return the number ``// of students that can pass ``static` `int` `check(``int` `n, List marks)``{``    ``// maximum marks ``    ``Integer x = Collections.max(marks); `` ` `    ``// maximum bonus marks that can be given ``    ``int` `bonus = ``100``-x;``    ``int` `c = ``0``;``    ``for``(``int` `i=``0``; i= ``50``)``            ``c += ``1``;``    ``}``    ``return` `c;``}``     ` `// Driver code``public` `static` `void` `main(String[] args)``{``int` `n = ``5``;`` ``List marks = Arrays.asList(``0``, ``21``, ``83``, ``45``, ``64``); ``System.out.println(check(n, marks)); ``}``}``// This code is contributed by mits`

## Python3

 `# Python3 Implementation of above approach.`` ` `# Function to return the number ``# of students that can pass``def` `check(n, marks):`` ` `    ``# maximum marks``    ``x ``=` `max``(marks)`` ` `    ``# maximum bonus marks that can be given``    ``bonus ``=` `100``-``x``    ``c ``=` `0``    ``for` `i ``in` `range``(n):`` ` `        ``# counting the number of ``        ``# students that can pass``        ``if``(marks[i] ``+` `bonus >``=` `50``):``            ``c ``+``=` `1`` ` `    ``return` `c`` ` `# Driver code``n ``=` `5``marks ``=` `[``0``, ``21``, ``83``, ``45``, ``64``]``print``(check(n, marks))`

## C#

 `// C# Implementation of above approach. ``using` `System;``using` `System.Collections.Generic;``using` `System.Collections;``using` `System.Linq;``class` `GFG{``// Function to return the number ``// of students that can pass ``static` `int` `check(``int` `n, List<``int``> marks)``{``    ``// maximum marks ``    ``int` `x = marks.Max(); `` ` `    ``// maximum bonus marks that can be given ``    ``int` `bonus = 100-x;``    ``int` `c = 0;``    ``for``(``int` `i=0; i= 50)``            ``c += 1;``    ``}``    ``return` `c;``}``     ` `// Driver code``public` `static` `void` `Main()``{``int` `n = 5;``List<``int``> marks = ``new` `List<``int``>(``new` `int``[]{0, 21, 83, 45, 64}); ``Console.WriteLine(check(n, marks)); ``}``}``// This code is contributed by mits`

## PHP

 `= 50)``            ``\$c` `+= 1;``    ``}``    ``return` `\$c``;``}``     ` `// Driver code ``\$n` `= 5;``\$marks` `= ``array``(0, 21, 83, 45, 64); ``echo` `check(``\$n``, ``\$marks``); `
Output:
```3
```

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up