P12850 [NERC 2020 Online] Almost Balanced Tree

题目描述

考虑一棵二叉树,其中每个节点的权值为 1 或 2。一个子树的权值是该子树中所有节点权值的总和。空树的权值为 0。 如果对于每个节点,其左右子树的权值之差不超过 1(如果某个子节点缺失,则其权值视为 0),那么这棵二叉树是**近似平衡**的。 以下是一个近似平衡二叉树的示例: ![](https://cdn.luogu.com.cn/upload/image_hosting/1q3xfqru.png) 你的任务是构建一棵恰好包含 $A$ 个权值为 1 的节点和 $B$ 个权值为 2 的节点的近似平衡二叉树,或者判定这是不可能的。

输入格式

输入包含两个非负整数 $A$ 和 $B$($1 \le A + B \le 100\,000$)。

输出格式

为树的节点分配从 1 到 $A + B$ 的编号,其中节点 1 应为树的根节点。输出 $A + B$ 行,每行对应一个节点。每行应包含三个整数——节点的权值,以及该节点的左右子节点的编号。如果对应的子节点不存在,则输出 0。 如果无法构建近似平衡树,则输出 $-1$。 如果存在多个可能的解,输出其中任意一个即可。

说明/提示

翻译由 DeepSeek V3 完成