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 C++14 (GCC 5.4.1) (judge verdict: Wrong Answer)

#include <iostream>
#include <algorithm>
#include <vector>
#include <cmath>
#include <string>
#include <map>

#define ll long long
#define REP(i,n) for(int i = 0; i < n; i++)
#define PI 3.141592653589
#define MOD 1000000007

using namespace std;

int gcd(int a, int b){return (a % b)? gcd(b, a % b) : b;}
int lcm(int a, int b){return a * b / gcd(a, b);}

vector<int> input;
vector<int> answer(3, -1);

void dfs(vector<int> &A){
    if(A.size() == 3){
        int ans = input[0];
        REP(i,3){
            if(A[i] == 0){
                ans += input[i+1];
            } else{
                ans -= input[i+1];
            }
        }

        if(ans == 7){
            REP(i,3){
                answer[i] = A[i];
            }
        }
        return;
    }
    

    for(int bit = 0; bit <= 1; bit++){
        A.push_back(bit);
        dfs(A);
        A.pop_back();
    }
}

void solve_079c(){
    int num;
    cin >> num;
    input.resize(4);
    input[0] = (num / 1000);
    input[1] = ((num - input[0] * 1000) / 100);
    input[2] = ((num - input[0] * 1000 - input[1] * 100) / 10);
    input[3] = (num % 10);

    REP(i,4) cout << input[i] << endl;
    vector<int> tmp;
    dfs(tmp);

    REP(i,3){
        cout << input[i];
        if(answer[i] == 0) cout << "+";
        else cout << "-";
    }
    cout << input[3] << "=7";
}

int main(void){
    solve_079c();
    
    return 0;
}