Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Maximum students to pass after giving bonus to everybody and not exceeding 100 marks

  • Last Updated : 19 May, 2021

Given an array arr  which represents the marks of n  students. The passing grade is 50  and maximum marks that a student can score is 100  , 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 100  . Print the total students that can pass the exam in the end.
Examples: 
 

Input: arr[] = {0, 21, 83, 45, 64} 
Output:
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:
 

 

Approach: Let M  be the maximum marks of a student among all others then the maximum possible bonus marks that can be given will be 100 - M  . 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<iostream>
#include<algorithm>
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<n;i++)
    {
 
        // counting the number of
        // students that can pass
        if(marks[i] + bonus >= 50)
            c += 1;
    }
    return c;
}
     
// Driver code
int main()
{
int n = 5;
int marks[] = {0, 21, 83, 45, 64};
cout<<check(n, marks)<<endl;
return 0;
}
// This code is contributed by mits

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<Integer> 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<n;i++)
    {
 
        // counting the number of
        // students that can pass
        if(marks.get(i) + bonus >= 50)
            c += 1;
    }
    return c;
}
     
// Driver code
public static void main(String[] args)
{
int n = 5;
 List<Integer> 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<n;i++)
    {
 
        // counting the number of
        // students that can pass
        if(marks[i] + bonus >= 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




<?php
 
// PHP Implementation of above approach.
 
// Function to return the number
// of students that can pass
function check($n, $marks)
{
    // maximum marks
    $x = max($marks);
 
    // maximum bonus marks that can be given
    $bonus = 100-$x;
    $c = 0;
    for($i=0; $i<$n;$i++)
    {
 
        // counting the number of
        // students that can pass
        if($marks[$i] + $bonus >= 50)
            $c += 1;
    }
    return $c;
}
     
// Driver code
$n = 5;
$marks = array(0, 21, 83, 45, 64);
echo check($n, $marks);

Javascript




<script>
 
// JavaScript Implementation of above approach.
 
// Function to return the number
// of students that can pass
function check(n, marks)
{
    // maximum marks
    let x = Math.max(...marks);
   
    // maximum bonus marks that can be given
    let bonus = 100-x;
    let c = 0;
    for(let i=0; i<n;i++)
    {
   
        // counting the number of
        // students that can pass
        if(marks[i] + bonus >= 50)
            c += 1;
    }
    return c;
}
     
    // Driver code
 
    let n = 5;
     let marks = [0, 21, 83, 45, 64];
     document.write(check(n, marks));
 
       
</script>
Output: 
3

 


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!