Output 0 when no path possible.
This commit is contained in:
@@ -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", ¤t_target);
|
scanf("%d", ¤t_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");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user