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

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int cmp(const void *a,const void *b)
{
    return strcmp((char*)a,(char*)b);
}
int main()
{
    int a,b,i,j,k;
    char A[101],B[101];
    scanf("%s",B);scanf("%s",A);//输入S和T
    a=strlen(B); b=strlen(A);//统计两个字符串的长度
   
    char D[101][101];
    int C,point,n;
    C=0;point=0;n=0;
    
    
    
        
   if(a>=b)
    
    {
        for(i=a-1;i>=0; i--)
        {
            
            if(B[i]==A[b-1]||B[i]=='?')
            {
                k=i;
                for(j=b-1; j>=0; j--)
                {
                    if(A[j]==B[k]||B[k]=='?')
                        k--;
                    
                    else
                        break;
                    
                }
                if(k==i-b)
                {
                    k=i;
                    strcpy(D[n],B);
                    for(j=b-1; j>=0; j--,k--)
                    {
                        D[n][k]=A[j];
                    }
                    for(j=0; j<a; j++)
                    {
                        if(D[n][j]=='?')
                            D[n][j]='a';
                    }
                    point=1;
                    n++;
                }}}}
            
        
    else
        printf("UNRESTORABLE");
    
    
    
    
    
    if(point!=1)
         printf("UNRESTORABLE");
    else
        {
            qsort(D,n,101*sizeof(char),cmp);
            printf("%s\n",D[0]);
        }
   
}