Problem:
式

与えられた 4 つの 1 から 9 の整数を使って、答えが 10 になる式をつくります。
4 つの整数 a, b, c, d を入力したとき、下記の条件に従い、答えが 10 になる式を出力するプログラムを作成してください。また、答えが複数ある時は、最初に見つかった答えだけを出力するものとします。答えがない時は、0 と出力してください。

演算子として、加算 (+)、減算 (-)、乗算 (*) だけを使います。除算 (/) は使いません。使用できる演算子は３個です。

数を4つとも使わなければいけません。

4つの数の順番は自由に入れ換えてかまいません。

カッコを使ってもかまいません。使用できるカッコは３組（６個）以下です。

Input

複数のデータセットが与えられます。各データセットの形式は以下のとおり：

a b c d

入力は４つの 0 で終了します。データセットの数は 40 を超えません。

Output

各データセットについて、与えられた 4 つの整数と上記の演算記号およびカッコを組み合わせて値が 10 となる式または 0 を１行に出力してください。式の文字列が 1024 文字を超えてはいけません。

Sample Input

8 7 9 9
4 4 4 4
5 5 7 5
0 0 0 0

Output for the Sample Input

((9 * (9 - 7)) - 8)
0
((7 * 5) - (5 * 5))

Solution in Python3 (judge verdict: Accepted)

import sys
import itertools
def line():return sys.stdin.readline().strip()

p = ["+","-","*"]
n = [[0,2,0,1],[0,1,2,3]]
def f(l):
    for i in range(len(n)):
        L = l[:]
        L[n[i][0]] = "(" + L[n[i][0]]
        L[n[i][1]] = L[n[i][1]] + ")"
        L[n[i][2]] = "(" + L[n[i][2]]
        L[n[i][3]] = L[n[i][3]] + ")"
        for i in range(3):
            for j in range(3):
                for k in range(3):
                    N = L[:]
                    N[0]+=p[i]
                    N[1]+=p[j]
                    N[2]+=p[k]
                    e = " ".join(N)
                    exec("x=" + e,globals())
                    if x == 10:
                      return e
    return "0"

while True:
    l = line().split()
    if l[0] == "0":break
    ans = "0"
    for i in list(itertools.permutations(l)):
        i = f(list(i))
        if i != "0":
            ans = i
            break
    print(ans)