## ABSYS - Anti-Blot System

no tags

Jimmy is a hard-working pupil in his second year at primary school. Recently he decided to convert all his notes into an electronic version. Sadly, he found that his math notes were full of ink blots.

He scanned the notes and sent them through his own OCR package (yes, he coded it all by himself at the age of 8). The OCR package replaced all ink blots by the string "`machula`".

### Problem specification

You are given Jimmy's notes, processed by the OCR. They contain simple math exercises, which were used to practice addition on positive integers. Your task is to recover the damaged part of the notes.

### Input specification

The first line of the input file contains an integer T specifying the number of test cases. Each test case is preceded by a blank line.

Each test case consists of exactly one line. The line represents an equation of the form "`number + number = number`", where each `number` is a positive integer. One part of the equation will be replaced by the string "`machula`". The string always covers a contiguous non-empty sequence of digits, possibly even an entire number. You may assume that for each equation in the input there will be exactly one way to fill in the missing digits.

### Output specification

For each test case, the output shall contain one line of the form "`number + number = number`". The line must represent the equation from that test case with all missing digits filled in.

### Example

```Input:
3

23 + 47 = machula

3247 + 5machula2 = 3749

machula13 + 75425 = 77038

Output:
23 + 47 = 70
3247 + 502 = 3749
1613 + 75425 = 77038```

Note: int in C++/C/Java or longint in Pascal is enough.

## Code Examples

### #1 Code Example with Java Programming

```Code - Java Programming```

``````import java.io.*;
import java.util.*;
import java.math.*;

class A{
public static void main(String[] args){
OutputWriter out = new OutputWriter(System.out);
Solver solveA = new Solver();
while(t-- > 0){
solveA.solve(in, out);
}
out.flush();
out.close();
}
}
class Solver{
final int mod = (int)1e9+7;
String input1, input2, input3, input4, input5;
if(input1.contains("machula")){
out.printLine(Integer.parseInt(input5)-Integer.parseInt(input3)+" "+input2+" "+input3+" "+input4+" "+input5);
}else if(input3.contains("machula")){
out.printLine(input1+" "+input2+" "+(Integer.parseInt(input5)-Integer.parseInt(input1))+" "+input4+" "+input5);
}else{
out.printLine(input1+" "+input2+" "+input3+" "+input4+" "+(Integer.parseInt(input1)+Integer.parseInt(input3)));
}
}
}
{
private InputStream stream;
private byte[] buf = new byte[1024];
private int curChar;
private int numChars;
private SpaceCharFilter filter;

{
this.stream = stream;
}

{
if (numChars == -1)
throw new InputMismatchException();
if (curChar >= numChars)
{
curChar = 0;
try
{
} catch (IOException e)
{
throw new InputMismatchException();
}
if (numChars <= 0)
return -1;
}
return buf[curChar++];
}

{
while (isSpaceChar(c))
int sgn = 1;
if (c == '-')
{
sgn = -1;
}
int res = 0;
do
{
if (c  <  '0' || c > '9')
throw new InputMismatchException();
res *= 10;
res += c - '0';
} while (!isSpaceChar(c));
return res * sgn;
}

{
while (isSpaceChar(c))
StringBuilder res = new StringBuilder();
do
{
res.appendCodePoint(c);
} while (!isSpaceChar(c));
return res.toString();
}
while (isSpaceChar(c))
int sgn = 1;
if (c == '-') {
sgn = -1;
}
double res = 0;
while (!isSpaceChar(c) && c != '.') {
if (c == 'e' || c == 'E')
if (c  <  '0' || c > '9')
throw new InputMismatchException();
res *= 10;
res += c - '0';
}
if (c == '.') {
double m = 1;
while (!isSpaceChar(c)) {
if (c == 'e' || c == 'E')
if (c  <  '0' || c > '9')
throw new InputMismatchException();
m /= 10;
res += (c - '0') * m;
}
}
return res * sgn;
}
while (isSpaceChar(c))
int sgn = 1;
if (c == '-') {
sgn = -1;
}
long res = 0;
do {
if (c  <  '0' || c > '9')
throw new InputMismatchException();
res *= 10;
res += c - '0';
} while (!isSpaceChar(c));
return res * sgn;
}
public boolean isSpaceChar(int c)
{
if (filter != null)
return filter.isSpaceChar(c);
return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1;
}

public String next()
{
}

public interface SpaceCharFilter
{
public boolean isSpaceChar(int ch);
}
}

class OutputWriter
{
private  PrintWriter writer;

public OutputWriter(OutputStream outputStream)
{
writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(outputStream)));
}

public OutputWriter(Writer writer)
{
this.writer = new PrintWriter(writer);
}

public void print(Object... objects)
{
for (int i = 0; i  <  objects.length; i++)
{
if (i != 0)
writer.print(' ');
writer.print(objects[i]);
}
}

public void printLine(Object... objects)
{
print(objects);
writer.println();
}

public void close()
{
writer.close();
}

public void flush()
{
writer.flush();
}
}``````
Copy The Code &

Input

cmd
3
23 + 47 = machula
3247 + 5machula2 = 3749
machula13 + 75425 = 77038

Output

cmd
23 + 47 = 70
3247 + 502 = 3749
1613 + 75425 = 77038

### #2 Code Example with C++ Programming

```Code - C++ Programming```

``````#include <iostream>
#include <string>
#include <locale>

using namespace std;
bool allDigit(string str){
for(int i=0;i<str.length();++i){
if(isalpha(str[i]))
return false;
}
return true;
}
int main() {
int t;
cin>>t;
while(t--){
string op1,op2,plus,eq,op3;
int result;
cin>>op1>>plus>>op2>>eq>>op3;

if(allDigit(op1) && allDigit(op2)){
result = stoi(op2)+stoi(op1);
cout<<op1<<" + "<<op2<<" = "<<result<<endl;
}
if(allDigit(op1) && allDigit(op3)){
result = stoi(op3)-stoi(op1);
cout<<op1<<" + "<<result<<" = "<<op3<<endl;
}
if(allDigit(op2) && allDigit(op3)){
result = stoi(op3)-stoi(op2);
cout<<result<<" + "<<op2<<" = "<<op3<<endl;
}
}
return 0;
}``````
Copy The Code &

Input

cmd
3
23 + 47 = machula
3247 + 5machula2 = 3749
machula13 + 75425 = 77038

Output

cmd
23 + 47 = 70
3247 + 502 = 3749
1613 + 75425 = 77038

## Demonstration

SPOJ Solution-Anti-Blot System-Solution in C, C++, Java, Python