# Digit Removal DIGITREM October Long Challenge

## Digit Removal DIGITREM Solution

You are given an integer N and a digit D. Find the minimum integer you should add to N such that the final value of N does not contain the digit D.

Input Format

• The first line contains T denoting the number of test cases. Then the test cases follow.
• Each test case contains two integers N and D on a single line denoting the original number and the digit you need to avoid.

Output Format

For each test case, output on a single line the minimum integer you should add to N.

Constraints

• 1≤T≤105
• 1≤N≤109
• 0≤D≤9

• Subtask 1 (100 points): Original constraints

Sample Input 1

``````5
21 5
8 8
100 0
5925 9
434356 3``````

Sample Output 1

``````0
1
11
75
5644``````

Explanation

Test case 1: N=21 does not contain the digit D=5. Hence there is no need to add any integers to N.

Test case 2: If 1 is added to N=8, it becomes equal to 9, which does not contain the digit D=8.

Test case 3: The minimum integer you should add to N=100 such that the final value of N does not contain the digit D=0 is 11.

Test case 5: The minimum integer which is greater than 434356 and does not contain the digit D=3 is 440000. So we should add 440000−434356=5644.

### SOLUTION

Program C++: Digit Removal DIGITREM Solution in C++

``````#include <bits/stdc++.h>
using namespace std;
#define tc ll t sc cin >> t sc while (t--)
#define ff first
#define sc ;
#define ss second
#define pb push_back
#define pp pop_back
#define mp make_pair
#define ll long long
#define Krishna cin.tie(NULL);
int main()
{
tc
{
ll n;
ll d;
cin >> n;
cin >> d;
string str = to_string(n);
ll len = str.length();
if (d == 0)
{
int ind2=len;

for (int i = 0; i < len; i++)
{
if (str[i] == '0')
{
str[i] = '1';
ind2=i;
break;
}
}
for (int j = ind2 + 1; j < len; j++)
{
str[j] = '1';
}
}
else if (d == 9)
{
if (str == '9')
{
for (int i = 0; i < len; i++)
{
str[i] = '0';
}
str = "1" + str;
}
else
{
int ind=len;
for (int i = 0; i < len; i++)
{
if (str[i] == '9')
{

for(int k=i-1; k >= 0; k--)
{
if(str[k] <= '7')
{
str[k]++;
ind=k;
goto cvv;
}
}

for (int i = 0; i < len; i++)
{
str[i] = '0';
}
str = "1" + str;

goto fvv;
}
}

cvv:;
for (int j = ind+1; j < len; j++)
{
str[j] = '0';
}

fvv:;
}
}
else
{
int i = 0;
for (i = 0; i < len; i++)
{
if ((str[i] - 48) == d)
{
str[i]=str[i]+1;
break;
}
}
for (int j = i + 1; j < len; j++)
{
str[j] = '0';
}
}
ll nn = stoll(str);
cout << nn - n << "\n";
}
}``````