Given four positive integers **A**, **B**, **C** and **K**. The task is to check if it is possible to equalize the three integers **A**, **B** and **C** with the help of **K** and make **K** equal to **0**. In one operation, you can subtract any value form **K** (if it remains greater than equal to **0** after subtraction) and add the new value to any of the three integers **A**, **B** or **C**.

**Examples:**

Input:A = 6, B = 3, C = 2, K = 7

Output:Yes

Operation 1: Add 3 to B and subtract 3 from K.

A = 6, B = 6, C = 2 and K = 4

Operation 2: Add 4 to C and subtract 4 from K.

A = 6, B = 6, C = 6 and K = 0

Input:A = 10, B = 20, C = 17, K = 15

Output:No

**Approach:** Check whether it is possible to equalize the three numbers by sorting the three numbers and subtracting the value of **K** by the sum of the difference of **3 ^{rd}** and

**2**element and the

^{nd}**3**and

^{rd}**1**element. If

^{st}**K**is still greater than

**0**and can be divided among the three elements equally then only the three elements can be made equal and

**K**can be made equal to

**0**.

Below is the implementation of the above approach:

## C++

`// C++ implementation of the approach ` `#include <bits/stdc++.h> ` `using` `namespace` `std; ` ` ` `// Function that returns true if a, b and c can ` `// be made equal with the given operations ` `bool` `canBeEqual(` `int` `a, ` `int` `b, ` `int` `c, ` `int` `k) ` `{ ` ` ` `int` `arr[3]; ` ` ` `arr[0] = a; ` ` ` `arr[1] = b; ` ` ` `arr[2] = c; ` ` ` ` ` `// Sort the three numbers ` ` ` `sort(arr, arr + 3); ` ` ` ` ` `// Find the sum of difference of the 3rd and ` ` ` `// 2nd element and the 3rd and 1st element ` ` ` `int` `diff = 2 * arr[2] - arr[1] - arr[0]; ` ` ` ` ` `// Subtract the difference from k ` ` ` `k = k - diff; ` ` ` ` ` `// Check the required condition ` ` ` `if` `(k < 0 || k % 3 != 0) ` ` ` `return` `false` `; ` ` ` ` ` `return` `true` `; ` `} ` ` ` `// Driver code ` `int` `main() ` `{ ` ` ` `int` `a1 = 6, b1 = 3, c1 = 2, k1 = 7; ` ` ` ` ` `if` `(canBeEqual(a1, b1, c1, k1)) ` ` ` `cout << ` `"Yes"` `; ` ` ` `else` ` ` `cout << ` `"No"` `; ` ` ` ` ` `return` `0; ` `} ` |

*chevron_right*

*filter_none*

## Java

`// Java implementation of the approach ` `import` `java.util.*; ` ` ` `class` `GFG ` `{ ` ` ` `// Function that returns true if a, b and c can ` `// be made equal with the given operations ` `static` `boolean` `canBeEqual(` `int` `a, ` `int` `b, ` `int` `c, ` `int` `k) ` `{ ` ` ` `int` `[]arr = ` `new` `int` `[` `3` `]; ` ` ` `arr[` `0` `] = a; ` ` ` `arr[` `1` `] = b; ` ` ` `arr[` `2` `] = c; ` ` ` ` ` `// Sort the three numbers ` ` ` `Arrays.sort(arr); ` ` ` ` ` `// Find the sum of difference of the 3rd and ` ` ` `// 2nd element and the 3rd and 1st element ` ` ` `int` `diff = ` `2` `* arr[` `2` `] - arr[` `1` `] - arr[` `0` `]; ` ` ` ` ` `// Subtract the difference from k ` ` ` `k = k - diff; ` ` ` ` ` `// Check the required condition ` ` ` `if` `(k < ` `0` `|| k % ` `3` `!= ` `0` `) ` ` ` `return` `false` `; ` ` ` ` ` `return` `true` `; ` `} ` ` ` `// Driver code ` `public` `static` `void` `main(String[] args) ` `{ ` ` ` `int` `a1 = ` `6` `, b1 = ` `3` `, c1 = ` `2` `, k1 = ` `7` `; ` ` ` ` ` `if` `(canBeEqual(a1, b1, c1, k1)) ` ` ` `System.out.print(` `"Yes"` `); ` ` ` `else` ` ` `System.out.print(` `"No"` `); ` `} ` `} ` ` ` `// This code is contributed by PrinciRaj1992 ` |

*chevron_right*

*filter_none*

## Python3

`# Python3 implementation of the approach ` ` ` `# Function that returns true if a, b and c can ` `# be made equal with the given operations ` `def` `canBeEqual(a, b, c, k) : ` ` ` ` ` `arr ` `=` `[` `0` `] ` `*` `3` `; ` ` ` `arr[` `0` `] ` `=` `a; ` ` ` `arr[` `1` `] ` `=` `b; ` ` ` `arr[` `2` `] ` `=` `c; ` ` ` ` ` `# Sort the three numbers ` ` ` `arr.sort() ` ` ` ` ` `# Find the sum of difference of the 3rd and ` ` ` `# 2nd element and the 3rd and 1st element ` ` ` `diff ` `=` `2` `*` `arr[` `2` `] ` `-` `arr[` `1` `] ` `-` `arr[` `0` `]; ` ` ` ` ` `# Subtract the difference from k ` ` ` `k ` `=` `k ` `-` `diff; ` ` ` ` ` `# Check the required condition ` ` ` `if` `(k < ` `0` `or` `k ` `%` `3` `!` `=` `0` `) : ` ` ` `return` `False` `; ` ` ` ` ` `return` `True` `; ` ` ` `# Driver code ` `if` `__name__ ` `=` `=` `"__main__"` `: ` ` ` ` ` `a1 ` `=` `6` `; b1 ` `=` `3` `; c1 ` `=` `2` `; k1 ` `=` `7` `; ` ` ` ` ` `if` `(canBeEqual(a1, b1, c1, k1)) : ` ` ` `print` `(` `"Yes"` `); ` ` ` `else` `: ` ` ` `print` `(` `"No"` `); ` ` ` `# This code is contributed by AnkitRai01 ` |

*chevron_right*

*filter_none*

## C#

`// C# implementation of the approach ` `using` `System; ` ` ` `class` `GFG ` `{ ` ` ` `// Function that returns true if a, b and c can ` `// be made equal with the given operations ` `static` `bool` `canBeEqual(` `int` `a, ` `int` `b, ` `int` `c, ` `int` `k) ` `{ ` ` ` `int` `[]arr = ` `new` `int` `[3]; ` ` ` `arr[0] = a; ` ` ` `arr[1] = b; ` ` ` `arr[2] = c; ` ` ` ` ` `// Sort the three numbers ` ` ` `Array.Sort(arr); ` ` ` ` ` `// Find the sum of difference of the 3rd and ` ` ` `// 2nd element and the 3rd and 1st element ` ` ` `int` `diff = 2 * arr[2] - arr[1] - arr[0]; ` ` ` ` ` `// Subtract the difference from k ` ` ` `k = k - diff; ` ` ` ` ` `// Check the required condition ` ` ` `if` `(k < 0 || k % 3 != 0) ` ` ` `return` `false` `; ` ` ` ` ` `return` `true` `; ` `} ` ` ` `// Driver code ` `public` `static` `void` `Main(String[] args) ` `{ ` ` ` `int` `a1 = 6, b1 = 3, c1 = 2, k1 = 7; ` ` ` ` ` `if` `(canBeEqual(a1, b1, c1, k1)) ` ` ` `Console.Write(` `"Yes"` `); ` ` ` `else` ` ` `Console.Write(` `"No"` `); ` `} ` `} ` ` ` `// This code is contributed by 29AjayKumar ` |

*chevron_right*

*filter_none*

**Output:**

Yes

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready.