voiddfs(int depth){ if (depth == N - 1) { LL sum = 0, cur = 1; int s = 1; // sign for (int i = 0; i < depth; i++) { if (signs[i] == ' ') cur = cur * 10 + (i + 2); elseif (signs[i] == '+') { sum += cur * s; s = 1; cur = i + 2; } else { sum += cur * s; s = -1; cur = i + 2; } } sum += cur * s; if (sum == 0) { fout << 1; for (int i = 0; i < depth; i++) fout << signs[i] << (i + 2); fout << endl; } return; } signs[depth] = ' '; dfs(depth + 1); signs[depth] = '+'; dfs(depth + 1); signs[depth] = '-'; dfs(depth + 1); }
近期评论