Given the head start that A gives to B and C in a 100-meters race. The task is to find the head-start that B can give to C in the same race.
Examples:
Input: B = 10 meters, C = 28 meters Output: 20 meters B can give C a start of 20 meters. Input: B = 20 meters, C = 50 meters Output: 62 meters B can give C a start of 62 meters.
Approach:
Total meters in a race = 100 meters.
A is ahead of B by 10 meters. When A completed it’s 100 meters B completed it’s 90 meters.
Similarly, A is ahead of C by 28 meters. When A completed it’s 100 meters C completed it’s 72 meters.
Now, When B completed it’s 90 meters C completed it’s 72 meters.
So when B completed it’s 100 meters C completed it’s 80 meters.
–> (( C * 100) / B)
–> (( 72 * 100) / 90) i.e 80 meters
So B can give C a start of 20 meters
Below is the implementation of the above approach:
// C++ implementation of above approach #include <bits/stdc++.h> using namespace std;
// Function to find the B start to C int Race( int B, int C)
{ int result = 0;
// When B completed it's 100 meter
// then Completed meters by C is
result = ((C * 100) / B);
return 100 - result;
} // Driver Code. int main()
{ int B = 10, C = 28;
// When A completed it's 100 meter
// Then completed meters of B and C is
B = 100 - B;
C = 100 - C;
cout << Race(B, C) << " meters" ;
return 0;
} |
// Java implementation of above approach public class GFG
{ // Function to find the B start to C static int Race( int B, int C)
{ int result = 0 ;
// When B completed it's 100 meter
// then Completed meters by C is
result = ((C * 100 ) / B);
return 100 - result;
} // Driver Code public static void main(String[] args)
{ int B = 10 ;
int C = 28 ;
// When A completed it's 100 meter
// Then completed meters of B and C is
B = 100 - B;
C = 100 - C;
System.out.println(Race(B, C) + " meters" );
} } // This code is contributed // by ChitraNayal |
# Python 3 implementation # of above approach # Function to find the # B start to C def Race(B, C):
result = 0 ;
# When B completed it's 100 meter
# then Completed meters by C is
result = ((C * 100 ) / / B)
return 100 - result
# Driver Code if __name__ = = "__main__" :
B = 10
C = 28
# When A completed it's 100 meter
# Then completed meters of B and C is
B = 100 - B;
C = 100 - C;
print ( str (Race(B, C)) + " meters" )
# This code is contributed # by ChitraNayal |
// C# implementation of above approach using System;
class GFG
{ // Function to find the B start to C static int Race( int B, int C)
{ int result = 0;
// When B completed it's 100 meter
// then Completed meters by C is
result = ((C * 100) / B);
return 100 - result;
} // Driver Code public static void Main()
{ int B = 10;
int C = 28;
// When A completed it's 100 meter
// Then completed meters of B and C is
B = 100 - B;
C = 100 - C;
Console.Write(Race(B, C) + " meters" );
} } // This code is contributed // by ChitraNayal |
<?php // PHP implementation of above approach // Function to find the B start to C function Race( $B , $C )
{ $result = 0;
// When B completed it's 100 meter
// then Completed meters by C is
$result = (( $C * 100) / $B );
return 100 - $result ;
} // Driver Code $B = 10;
$C = 28;
// When A completed it's 100 meter // Then completed meters of B and C is $B = 100 - $B ;
$C = 100 - $C ;
echo Race( $B , $C ) . " meters" ;
// This code is contributed // by ChitraNayal ?> |
<script> // Javascript implementation of above approach // Function to find the B start to C function Race(B, C)
{ var result = 0;
// When B completed it's 100 meter
// then Completed meters by C is
result = ((C * 100) / B);
return 100 - result;
} // Driver Code var B = 10, C = 28;
// When A completed it's 100 meter // Then completed meters of B and C is B = 100 - B; C = 100 - C; document.write(Race(B, C) + " meters" );
// This code is contributed by itsok </script> |
20 meters
Time Complexity: O(1)
Auxiliary Space: O(1)