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: Accepted)

#include <iostream>
#include <vector>
#include <map>
#include <utility>
#include <algorithm>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <stack>
#include <queue>

#define REP(i,a,n) for(int i=a;i<n;++i)
#define rep(i,n) REP(i,0,n)
#define vsort(v) sort(v.begin(),v.end())
#define asort(a,n) sort(a, a + n)
#define vi vector<int>
#define vd vector<double>

//ここからAtCoder向けdefine
#define yes cout << "YES" << endl;
#define no cout << "NO" << endl;

using namespace std;

vi num(4);

bool zero(){
    int ans = 0;
    rep(i, 4){
        ans+= num[i];
    }
    if(ans == 7) return true;
    return false;
}

int ichi(){
    int ans = 0;
    REP(i, 1, 4){
        num[i] = -num[i];
        rep(j, 4){
            ans += num[j];
        }
        num[i] = -num[i];
        if(ans == 7) return i;
        ans = 0;
    }
    return -1;
}

int ni(){
    int ans = 0;
    /*rep(i, 4){
        cout << num[i] << ", ";
    }cout << endl;*/
    REP(i, 1, 4){
        REP(j, 1, 4){
            if(j != i){
                num[j] = -num[j];
                //cout << "rev" << j << '=' << num[j] << ',';
            }
        }
        //cout << endl;
        rep(j, 4){
            ans += num[j];
            //cout << num[j] << '>';
        }
        REP(j, 1, 4){
            if(i != j){
                num[j] = -num[j];
            }
        }
        //cout << endl << "ans = " << ans << endl;
        if(ans == 7) return i;
        ans = 0;
    }
    return -1;
}

bool san(){
    int ans = num[0];
    REP(i, 1, 4){
        num[i] = -num[i];
        ans += num[i];
    }
    REP(i, 1, 4){
        num[i] = -num[i];
    }
    if(ans == -7) return true;
    return false;
}

int main(){
    ios::sync_with_stdio(false);
    char n;
    rep(i, 4){
        cin >> n;
        num[i] = n - 48;
        //cout << num[i];
    }

    int a = ichi();
    /*
    rep(i, 4){
        cout << num[i];
    }
    cout << endl;*/
    
    if(zero()){
        cout << num[0] << '+' << num[1] << '+' << num[2] << '+' << num[3] << "=7" << endl;
    }/*else if(san()){
        cout << num[0] << '-' << num[1] << '-' << num[2] << '-' << num[3] << "=7" << endl;
    }*/else if(a != -1){
        cout << num[0];
        REP(i, 1, 4){
            if(i != a){
                cout << '+';
            }else{
                cout << '-';
            }
            cout << num[i];
        }
        cout << "=7" << endl;
    }else{
        int res = ni();
        cout << num[0];
        REP(i, 1, 4){
            if(i != res){
                cout << '-';
            }else{
                cout << '+';
            }
            cout << num[i];
        }
        cout << "=7" << endl;
    }

    return 0;
}