Output 0 when no path possible.

This commit is contained in:
unlockable
2023-11-05 11:03:05 +08:00
parent 32bd7e91fd
commit 2642acd00a

View File

@@ -72,13 +72,13 @@ SearchResult find_node(int target, int start_num, int next_dead_node_num_ptr,
if (target <= spawned_node_max_num) { if (target <= spawned_node_max_num) {
ans[0] = target; ans[0] = target;
int natural_pos = -1, num = start_num -1; int natural_pos = -1, num = start_num - 1;
for (int i = 0; i < current_line_len; i++) { for (int i = 0; i < current_line_len; i++) {
if (current_line_node[i].status == DEAD) { if (current_line_node[i].status == DEAD) {
natural_pos += current_line_node[i].length; natural_pos += current_line_node[i].length;
num += (current_line_node[i].length == 1); num += (current_line_node[i].length == 1);
if (num == target) { if (num == target) {
return SearchResult {1, natural_pos / 2}; return SearchResult{1, natural_pos / 2};
} }
continue; continue;
} }
@@ -138,11 +138,16 @@ int main() {
for (int i = 0; i < total_target_nodes; i++) { for (int i = 0; i < total_target_nodes; i++) {
scanf("%d", &current_target); scanf("%d", &current_target);
SearchResult result = find_node(current_target, 2, 0, &firstline, 1, 2); SearchResult result = find_node(current_target, 2, 0, &firstline, 1, 2);
printf("1 "); if (result.count_in_father_line == -1) {
for (int j = result.next_ans_pos - 1; j >= 0; j--) { printf("0\n");
printf("%d ", ans[j]); }
else {
printf("1 ");
for (int j = result.next_ans_pos - 1; j >= 0; j--) {
printf("%d ", ans[j]);
}
printf("\n");
} }
printf("\n");
} }
} }