def reconstruct_array(values):
    k = len(values) // 2
    arr = [0] * (2 * k)

    def build_tree(node, start, end):
        if start == end:
            arr[node] = values[start]
        else:
            mid = (start + end) // 2
            build_tree(2 * node + 1, start, mid)
            build_tree(2 * node + 2, mid + 1, end)
            arr[node] = min(arr[2 * node + 1], arr[2 * node + 2])

    build_tree(0, 0, 2 * k - 1)
    return arr
