Find minimum possible values of A, B and C when two of the (A + B), (A + C) and (B + C) are given

• Last Updated : 10 Mar, 2021

Given two integers X and Y. X and Y represent any two values among (A + B), (A + C) and (B + C). The task is to find A, B and C such that A + B + C is minimum possible.
Examples:

Input: X = 3, Y = 4
Output: 2 1 2
A = 2, B = 1, C = 2.
Then A + B = 3 and A + C = 4.
A + B + C = 5 which is minimum possible.
Input: X = 123, Y = 13
Output: 1 12 111

Approach: Let X = A + B and Y = B + C. If X > Y let’s swap them. Note that A + B + C = A + B + (Y – B) = A + Y. That’s why it’s optimal to minimize the value of A. So the value of A can always be 1. Then B = X – A and C = Y – B.
Below is the implementation of the above approach:

C++

 // C++ implementation of the approach#include using namespace std; // Function to find A, B and Cvoid MinimumValue(int x, int y){     // Keep minimum number in x    if (x > y)        swap(x, y);     // Find the numbers    int a = 1;    int b = x - 1;    int c = y - b;     cout << a << " " << b << " " << c;} // Driver codeint main(){    int x = 123, y = 13;     // Function call    MinimumValue(x, y);     return 0;}

Java

 // Java implementation of the approachimport java.io.*; class GFG{ // Function to find A, B and Cstatic void MinimumValue(int x, int y){     // Keep minimum number in x    if (x > y)    {        int temp = x;            x = y;            y = temp;    }     // Find the numbers    int a = 1;    int b = x - 1;    int c = y - b;     System.out.print( a + " " + b + " " + c);} // Driver codepublic static void main (String[] args){    int x = 123, y = 13;     // Function call    MinimumValue(x, y);}} // This code is contributed by anuj_67..

Python3

 # Python3 implementation of the approach # Function to find A, B and Cdef MinimumValue(x, y):     # Keep minimum number in x    if (x > y):        x, y = y, x     # Find the numbers    a = 1    b = x - 1    c = y - b     print(a, b, c) # Driver codex = 123y = 13 # Function callMinimumValue(x, y) # This code is contributed by Mohit Kumar

C#

 // C# implementation of the approachusing System; class GFG{ // Function to find A, B and Cstatic void MinimumValue(int x, int y){     // Keep minimum number in x    if (x > y)    {        int temp = x;            x = y;            y = temp;    }     // Find the numbers    int a = 1;    int b = x - 1;    int c = y - b;     Console.WriteLine( a + " " + b + " " + c);} // Driver codepublic static void Main (){    int x = 123, y = 13;     // Function call    MinimumValue(x, y);}} // This code is contributed by anuj_67..

Javascript


Output:
1 12 111

My Personal Notes arrow_drop_up