Total number of days taken to complete the task if after certain days one person leaves

Given that person A takes a days to do a certain piece of work while person B takes b days to do the same work. If A and B started the work together and n days before the completion of work, A leaves the work. Find the total number of days taken to complete work.
Examples:
Input: a = 10, b = 20, n = 5
Output: 10Input: a = 5, b = 15, n = 3
Output: 6
Approach: Let D be the total number of days to complete the work. A and B work together for D – n days. So,
(D – n) * (1/a + 1/b) + (n) * (1/b) = 1
D * (1/a + 1/b) – (n/a) – (n/b) + (n/b) = 1
D * (1/a + 1/b) = (n + a) / a
D = b * (n + a) / (a + b)
Below is the implementation of the above approach:
C++
// C++ implementation of the approach#include <bits/stdc++.h>using namespace std;// Function to return the// number of days requiredint numberOfDays(int a, int b, int n){ int Days = b * (n + a) / (a + b); return Days;}// Driver codeint main(){ int a = 10, b = 20, n = 5; cout << numberOfDays(a, b, n); return 0;} |
Java
// Java implementation of the approachimport java.io.*;class GFG { // Function to return the// number of days requiredstatic int numberOfDays(int a, int b, int n){ int Days = b * (n + a) / (a + b); return Days;}// Driver codepublic static void main (String[] args) { int a = 10, b = 20, n = 5; System.out.println (numberOfDays(a, b, n));}}// This code is contributed by jit_t |
Python3
# Python3 implementation of the approach # Function to return the# number of days requireddef numberOfDays(a, b, n): Days = b * (n + a) // (a + b) return Days# Driver codeif __name__ == "__main__" : a = 10 b = 20 n = 5 print(numberOfDays(a, b, n))# This code is contributed by rrrtnx |
C#
// C# implementation of the approach using System;class GFG { // Function to return the // number of days required static int numberOfDays(int a, int b, int n) { int Days = b * (n + a) / (a + b); return Days; } // Driver code public static void Main () { int a = 10, b = 20, n = 5; Console.WriteLine(numberOfDays(a, b, n)); } }// This code is contributed by AnkitRai01 |
Javascript
<script>// javascript implementation of the approach // Function to return the // number of days required function numberOfDays(a , b , n) { var Days = b * (n + a) / (a + b); return Days; } // Driver code var a = 10, b = 20, n = 5; document.write(numberOfDays(a, b, n));// This code is contributed by Rajput-Ji</script> |
10
Time Complexity: O(1), since there is only basic arithmetic operation.
Auxiliary Space: O(1), since no extra space has been taken.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!



