Given an array
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
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
Approach: Let
Below is the implementation of the above approach:
// C++ Implementation of above approach. #include <bits/stdc++.h> 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 + n);
// 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 Aditya Kumar (adityakumar129) |
// C Implementation of above approach. #include <stdio.h> int max_element( int arr[], int n)
{ // Initialize maximum element
int max = arr[0];
// Traverse array elements from second and compare every
// element with current max
for ( int i = 1; i < n; i++)
if (arr[i] > max)
max = arr[i];
return max;
} // Function to return the number of students that can pass int check( int n, int marks[])
{ // maximum marks
int x = max_element(marks, n);
// 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 int main()
{ int n = 5;
int marks[] = { 0, 21, 83, 45, 64 };
printf ( "%d\n" , check(n, marks));
return 0;
} // This code is contributed by Aditya Kumar (adityakumar129) |
// 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 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# 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 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 );
|
<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
Time Complexity: O(n), since the loop runs from 0 to (n – 1).
Auxiliary Space: O(1), since no extra space has been taken.