# Find K such that |A – K| = |B – K|

Given two integers **A** and **B** where **(A â‰ B)**. The task is to find **K** such that **|A – K| = |B – K|**. If no such **K** exists then print **-1**.

**Examples:**

Input:A = 2, B = 16Output:9

|2 – 9| = |16 – 9| = 7

Input:A = 5, B = 2Output:-1

**Approach:** It is given that **A â‰ B**. So let **A < B** then there are three cases:

**K < A:**This gives**A – K = B – K**which gives**A = B**which is false.**K > B:**This gives**K – A = K – B**which is also false.**A â‰¤ K â‰¤ B:**This gives**K – A = B – K**which gives**2 * K = A + B**

If **A + B** is odd, there is thus no solution. If **A + B** is even then the answer is **(A + B) / 2**.

Below is the implementation of the above approach:

## C++

`// C++ implementation of the approach` `#include <bits/stdc++.h>` `using` `namespace` `std;` `// Function to find k such that` `// |a - k| = |b - k|` `int` `find_k(` `int` `a, ` `int` `b)` `{` ` ` `// If (a + b) is even` ` ` `if` `((a + b) % 2 == 0)` ` ` `return` `((a + b) / 2);` ` ` `return` `-1;` `}` `// Driver code` `int` `main()` `{` ` ` `int` `a = 2, b = 16;` ` ` `cout << find_k(a, b);` ` ` `return` `0;` `}` |

## Java

`// Java implementation of the approach` `class` `GFG` `{` ` ` `// Function to find k such that` `// |a - k| = |b - k|` `static` `int` `find_k(` `int` `a, ` `int` `b)` `{` ` ` `// If (a + b) is even` ` ` `if` `((a + b) % ` `2` `== ` `0` `)` ` ` `return` `((a + b) / ` `2` `);` ` ` `return` `-` `1` `;` `}` `// Driver code` `public` `static` `void` `main(String[] args)` `{` ` ` `int` `a = ` `2` `, b = ` `16` `;` ` ` `System.out.println(find_k(a, b));` `}` `}` `// This code is contributed by Code_Mech` |

## Python3

`# Python3 implementation of the approach ` `# Function to find k such that ` `# |a - k| = |b - k| ` `def` `find_k(a, b) :` ` ` `# If (a + b) is even ` ` ` `if` `((a ` `+` `b) ` `%` `2` `=` `=` `0` `) : ` ` ` `return` `((a ` `+` `b) ` `/` `/` `2` `); ` ` ` `return` `-` `1` `; ` `# Driver code ` `if` `__name__ ` `=` `=` `"__main__"` `: ` ` ` `a ` `=` `2` `; b ` `=` `16` `; ` ` ` `print` `(find_k(a, b)); ` `# This code is contributed by AnkitRai01` |

## C#

`// C# implementation of the approach ` `using` `System;` `class` `GFG` `{` ` ` `// Function to find k such that` `// |a - k| = |b - k|` `static` `int` `find_k(` `int` `a, ` `int` `b)` `{` ` ` `// If (a + b) is even` ` ` `if` `((a + b) % 2 == 0)` ` ` `return` `((a + b) / 2);` ` ` `return` `-1;` `}` `// Driver code` `public` `static` `void` `Main()` `{` ` ` `int` `a = 2, b = 16;` ` ` `Console.Write(find_k(a, b));` `}` `}` `// This code is contributed by chitranayal` |

## Javascript

`<script>` `// Javascript implementation of the approach ` `// Function to find k such that` `// |a - k| = |b - k|` `function` `find_k(a, b)` `{` ` ` ` ` `// If (a + b) is even` ` ` `if` `((a + b) % 2 == 0)` ` ` `return` `((a + b) / 2);` ` ` `return` `-1;` `}` `// Driver code` `var` `a = 2, b = 16;` `document.write( find_k(a, b));` `// This code is contributed by akshitsaxenaa09` `</script>` |

**Output**

9

Time Complexity: O(1)

Auxiliary Space: O(1)