Length of race track based on the final distance between participants

Given three integers A, B and C, the task is to find the length of a race track if 3 racers are competing in a race where the first racer beats the second racer by A metres, the first racer beats the third racer by B metres and the second racer beats the third by C metres.

Examples:

Input: A = 11, B = 90, C = 80
Output: 880

Input: A = 10, B = 20, C = 12
Output: 60

Approach :
Let X be the length of the race track.



Case 1: By the time when the First racer finished the race, distances covered by all the 3 racers are:
First = X, Second = X – A, Third = X – B
Let the time taken by the First racer to finish the race be T1.

Case 2: By the time when the Second racer finished the race, distances covered by the remaining 2 racers are:
Second = X, Third = X – C
Let the time taken by the Second racer to finish the race be T2.

The ratio of the speeds of the Second and the Third racer will be constant in both case 1 and case 2 which implies:

=> ((X – A) / T1) / ((X – B) / T1) = (X / T2) / ((X – C) / T2)
=> (X – A) / (X – B) = (X) / (X – C)
=> X2 – A*X – C*X + A*C = X2 – B*X
=> A*C = (C + A – B)*X
=> X = A*C / (C + A – B)

Below is the implementation of the above program:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ Program for the above approach
  
#include <bits/stdc++.h>
using namespace std;
#define int long long
  
int32_t main()
{
    int A = 11;
    int B = 90;
    int C = 80;
  
    int ans = C * A;
    ans = ans / (C + A - B);
  
    cout << ans << endl;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java Program for the
// above approach
  
import java.util.Scanner;
  
class GFG {
    public static void main(String args[])
    {
        int a = 11;
        int b = 90;
        int c = 80;
  
        System.out.println(c * a
                           / (c + a - b));
    }
}

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 Program for the 
# above approach 
  
# Function to get the length
# of the race track
def findlength(a, b, c):
    # return the answer
    return c * a/(c + a-b)
  
a = 11
b = 90
c = 80
  
print(findlength(a, b, c)) 

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# program for the above approach 
using System;
class GFG{
      
static void Main()
{
    int a = 11; 
    int b = 90; 
    int c = 80; 
          
    Console.WriteLine(c * a / (c + a - b));
}
}
  
// This code is contributed by divyeshrabadiya07 

chevron_right


Output:

880

Note: This is an interview question asked at POSTMAN (SDE Internship)

competitive-programming-img




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.



Improved By : divyeshrabadiya07