Noonerized Spumbers

Everyone has heard of spoonerisms, named after William Archibald Spooner, an Oxford professor who had a habit of swapping prefixes of words, often with comical results. “May I show you to your seat?” became “May I sew you to your sheet?” and “a crushing blow” became “a blushing crow.”

Just imagine him as a student of arithmetic, occasionally swapping the prefixes of the numbers he was calculating with and then wondering why his equations never made any sense. For instance, when he writes:

\includegraphics[width=.3\textwidth ]{add1.png}

what he really intended to write was:

\includegraphics[width=.3\textwidth ]{add2.png}

(He swapped prefixes “$9$” and “$669$” in the first and third numbers.) And when he writes:

\includegraphics[width=.35\textwidth ]{multiply1.png}

what he really intended to write was:

\includegraphics[width=.35\textwidth ]{multiply2.png}

(He swapped the prefix “$72$” with the prefix “$68$” in the first and second numbers.)

Grading homework from young Mr. Spooner is quite a challenge. Fleas pined a way to help!


The input consists of a single line containing an expression of the form “$x + y = z$” or “$x * y = z$”, where $x$, $y$, and $z$ are positive integers less than $2^{31}$. There will be single spaces surrounding the “$+$” and “$*$” operators and the “$=$” sign. The expression will not be a mathematically correct equation.


Output a mathematically correct equation consisting of the input line modified by swapping proper prefixes of two of the three numbers $x$, $y$, $z$. (A proper prefix of a string $s$ is a prefix that is neither empty nor equal to $s$.) Separate the numbers, operators, and the “$=$” sign with single spaces. All integers in the correct equation will be non-negative and less than $2^{31}$. There is guaranteed to be only one possible correct equation that can be formed by swapping proper prefixes.

Sample Input 1 Sample Output 1
92 + 2803 = 669495
6692 + 2803 = 9495
Sample Input 2 Sample Output 2
6891 * 723 = 4979753
7291 * 683 = 4979753
CPU Time limit 1 second
Memory limit 1024 MB
Difficulty 2.5easy
Statistics Show
License Creative Commons License (cc by-sa)

Please log in to submit a solution to this problem

Log in