#3992. 题目 1:完全二叉树节点编号

题目 1:完全二叉树节点编号

题目描述

给定一个正整数 $n$,表示一棵完全二叉树的节点总数。节点编号从 1 到 $n$(根节点编号为 1)。 请你输出这棵树的“节点 $i$ 的左、右孩子编号”信息,如果某个孩子不存在,输出 -1。

具体地:

  • 对于每个节点编号 $i$($1 \le i \le n$),如果 $2i \le n$ 则左孩子编号为 $2i$;否则左孩子为 -1。
  • 如果 $2i+1 \le n$ 则右孩子编号为 $2i+1$;否则右孩子为 -1。

请按节点编号从 1 到 $n$ 的顺序,逐行输出每个节点的左右孩子编号。


输入格式

n
  • 第一行一个正整数 $n$,表示完全二叉树的节点总数。($1 \le n \le 10^6$)

输出格式

共 $n$ 行,第 $i$ 行输出两个整数,表示节点编号 $i$ 的左孩子右孩子编号。 如果某个孩子不存在,则输出 -1。例如:

left_i right_i

代表编号为 $i$ 的节点,左孩子编号为 left_i,右孩子编号为 right_i


7
2 3
4 5
6 7
-1 -1
-1 -1
-1 -1
-1 -1

解释:

  • 节点 1 的左右孩子分别是 2, 3;
  • 节点 2 的左右孩子分别是 4, 5;
  • 节点 3 的左右孩子分别是 6, 7;
  • 节点 4–7 没有孩子,均输出 -1 -1