1 void
2 solve(int depth, int cur, int pre)
3 {
4 if(depth+1 == n) {
5 cur += pre;
6 if(cur == 0) {
7 ++total;
8 if(total <= MAX_SOLVE)
9 output();
10 }
11 return;
12 }
13 oparr[depth] = op[0];
14 solve(depth+1, cur+pre, arr[depth]);
15 oparr[depth] = op[1];
16 solve(depth+1, cur+pre, -arr[depth]);
17 oparr[depth] = op[2];
18 if(arr[depth]>=10)
19 pre = pre*100 + pre/abs(pre)*arr[depth];
20 else
21 pre = pre*10 + pre/abs(pre)*arr[depth];
22 solve(depth+1, cur, pre);
23 }