# Maximum and minimum sums from two numbers with digit replacements

Given two positive numbers calculate the minimum and maximum possible sums of two numbers. We are allowed to replace digit 5 with digit 6 and vice versa in either or both the given numbers.

Examples:

```Input  : x1 = 645 x2 = 666
Output : Minimum Sum: 1100 (545 + 555)
Maximum Sum: 1312 (646 + 666)

Input: x1 = 5466 x2 = 4555
Output: Minimum sum: 10010
Maximum Sum: 11132
```

## Recommended: Please solve it on “PRACTICE ” first, before moving on to the solution.

Since both numbers are positive, we always get maximum sum if replace 5 with 6 in both numbers. And we get minimum sum if we replace 6 with 5 in both numbers. Below is C++ implementation based on this fact.

```// C++ program to find maximum and minimum
// possible sums of two numbers that we can
// get if replacing digit from 5 to 6 and vice
// versa are allowed.
#include<bits/stdc++.h>
using namespace std;

// Find new value of x after replacing digit
// "from" to "to"
int replaceDig(int x, int from, int to)
{
int result = 0;
int multiply = 1;

while (x % 10 > 0)
{
int reminder = x % 10;

// Required digit found, replace it
if (reminder == from)
result = result + to * multiply;

else
result = result + reminder * multiply;

multiply *= 10;
x = x / 10;
}
return result;
}

// Returns maximum and minimum possible sums of
// x1 and x2 if digit replacements are allowed.
void calculateMinMaxSum(int x1, int x2)
{
// We always get minimum sum if we replace
// 6 with 5.
int minSum = replaceDig(x1, 6, 5) +
replaceDig(x2, 6, 5);

// We always get maximum sum if we replace
// 5 with 6.
int maxSum = replaceDig(x1, 5, 6) +
replaceDig(x2, 5, 6);
cout << "Minimum sum = " << minSum;
cout << "nMaximum sum = " << maxSum;
}

// Driver code
int main()
{
int x1 = 5466, x2 = 4555;
calculateMinMaxSum(x1, x2);
return 0;
}
```

Output:

```Minimum sum = 10010
Maximum sum = 11132
```

This article is contributed by Roshni Agarwal. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

# GATE CS Corner    Company Wise Coding Practice

2 Average Difficulty : 2/5.0
Based on 2 vote(s)