 Open in App
Not now

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

• Last Updated : 07 Jun, 2022

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 C``void` `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 code``int` `main()``{``    ``int` `x = 123, y = 13;` `    ``// Function call``    ``MinimumValue(x, y);` `    ``return` `0;``}`

## Java

 `// Java implementation of the approach``import` `java.io.*;` `class` `GFG``{` `// Function to find A, B and C``static` `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 code``public` `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 C``def` `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 code``x ``=` `123``y ``=` `13` `# Function call``MinimumValue(x, y)` `# This code is contributed by Mohit Kumar`

## C#

 `// C# implementation of the approach``using` `System;` `class` `GFG``{` `// Function to find A, B and C``static` `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 code``public` `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`

Time Complexity: O(1)

Auxiliary Space: O(1)

My Personal Notes arrow_drop_up