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

<?php
    while($line = fgets(STDIN)){
        $tmp[] = trim($line);
    }
    $flg;
    foreach($tmp as $rows){
        $num_ary = explode(" ",$rows);
        if(calc($num_ary[0],$num_ary[1],$num_ary[2],$num_ary[3])){
            break;
        }
    }
    
    function calc($n1,$n2,$n3,$n4){
        
        if($n1+$n2+$n3+$n4==0){
            return true;
        }
        $ary = array($n1,$n2,$n3,$n4,$n1,$n2,$n3);
        for($i=0;$i <4;$i++){
            for($j=$i+1;$j < $i+4;$j++){
                for($l=$i+1;$l < $i+4;$l++){
                    if($l != $j){
                        for($m=$i+1;$m < $i+4;$m++){
                            if($m != $l && $m != $j){
                                if(enzansi($ary[$i],$ary[$j],$ary[$l],$ary[$m])){
                                    return false;
                                }
                            }
                        }   
                    }
                }
            }
        }
        echo "0\n";
    }
    function enzansi($m1,$m2,$m3,$m4){
        for($x = 0;$x < 3;$x++){
            $enzan1 = retEnzan($x);
            for($y = 0;$y < 3;$y++){
                $enzan2 = retEnzan($y);
                for($z = 0;$z < 3;$z++){
                    $enzan3 = retEnzan($z);
                    $shiki = $m1.$enzan1.$m2.$enzan2.$m3.$enzan3.$m4;
                    if(10==eval("return {$shiki};")){
                        echo $shiki."\n";
                        return true;
                    }
                }
            }
        }
    }
    function retEnzan($e){
        if($e == 0){
            return "+";
        }elseif($e == 1){
            return "-";
        }else{
            return "*";
        }
    }