Problem:
Score : 300 points

Problem Statement

Sitting in a station waiting room, Joisino is gazing at her train ticket.

The ticket is numbered with four digits A, B, C and D in this order, each between 0 and 9 (inclusive).

In the formula A op1 B op2 C op3 D = 7, replace each of the symbols op1, op2 and op3 with + or - so that the formula holds.

The given input guarantees that there is a solution. If there are multiple solutions, any of them will be accepted.

Constraints

0≤A,B,C,D≤9

All input values are integers.

It is guaranteed that there is a solution.

Input

Input is given from Standard Input in the following format:

ABCD

Output

Print the formula you made, including the part =7.

Use the signs + and -.

Do not print a space between a digit and a sign.

Sample Input 1

1222

Sample Output 1

1+2+2+2=7

This is the only valid solution.

Sample Input 2

0290

Sample Output 2

0-2+9+0=7

0 - 2 + 9 - 0 = 7 is also a valid solution.

Sample Input 3

3242

Sample Output 3

3+2+4-2=7

Solution in Go (1.14.1) (judge verdict: Accepted)

      package main                                              
                                                          
import "fmt"
import "strconv"
                                                          
func find(a []int, x int) int {
        for i, n := range a {           
                if x == n {                               
                        return i                
                }        
        }        
        return len(a)
}                                                         
                             
func main() {                                             
        var S string                                      
        var nums []int  
n := 3 // + or - が入る位置

        fmt.Scanf("%s", &S)

        for i := 0; i < len(S); i++ {
                num, _ := strconv.Atoi(S[i : i+1])
                nums = append(nums, num)
        }

        for bit := 0; bit < (1 << n); bit++ {
                var p []int
                for i := 0; i < n; i++ {
                        if bit&(1<<i) >= 1 {
                                p = append(p, i)
                        }
                }

                var result []string
                total := 0
                for i, num := range nums {
                        f := find(p, i-1)
                        if i == 0 {
                                total += num
                        } else if f < len(p) && p[f] == i-1 {
                                total += num
                                result = append(result, "+")
                        } else {
                                total -= num
                                result = append(result, "-")
                        }
                        result = append(result, strconv.Itoa(num))
                }

                var sentence string

                if total == 7 {
                        for _, re := range result {
                                sentence += re
                        }
                        fmt.Print(sentence + "=7")
                        return
                }
        }
}