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

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 = 4Output: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 = 13Output: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 <bits/stdc++.h>` `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

`<script>` `// javascript implementation of the approach` `// Function to find A, B and C` `function` `MinimumValue(x, y)` `{` ` ` `// Keep minimum number in x` ` ` `if` `(x > y)` ` ` `{` ` ` `var` `temp = x;` ` ` `x = y;` ` ` `y = temp;` ` ` `}` ` ` `// Find the numbers` ` ` `var` `a = 1;` ` ` `var` `b = x - 1;` ` ` `var` `c = y - b;` ` ` `document.write( a + ` `" "` `+ b + ` `" "` `+ c);` `}` `// Driver code` ` ` `var` `x = 123, y = 13;` ` ` `// Function call` ` ` `MinimumValue(x, y);` `// This code is contributed by Amit Katiyar` `</script>` |

**Output:**

1 12 111