CF639B Bear and Forgotten Tree 3

题目描述

一棵树是一个包含 $n$ 个顶点和 $n-1$ 条边的连通无向图。顶点编号为 $1$ 到 $n$。 Limak 是一只小北极熊,Radewoosh 是他的邪恶敌人。Limak 曾经有一棵树,但 Radewoosh 把它偷走了。现在北极熊很伤心,因为他对树的记忆不深——他只能告诉你三个数 $n$,$d$ 和 $h$: - 这棵树恰好有 $n$ 个顶点。 - 这棵树的直径是 $d$。换句话说,$d$ 是任意两点之间的最大距离。 - Limak 还记得他曾将树以顶点 $1$ 作为根,此时树的高度为 $h$。换句话说,$h$ 是从顶点 $1$ 到其他任意一点的最大距离。 树上两个顶点之间的距离是它们之间简单路径上的边数。 请帮助 Limak 恢复他的树。判断是否存在满足所给条件的树,并随意输出其中一种方案。如果不存在满足条件的树,则输出 $-1$。

输入格式

第一行包含三个整数 $n$、$d$ 和 $h$($2 \le n \le 100000,\, 1 \le h \le d \le n-1$)——顶点数、直径、以 $1$ 为根的树的高度。

输出格式

如果不存在满足 Limak 描述的树,只需输出一行 “-1”。 否则,描述一个满足条件的树。输出 $n-1$ 行,每行输出两个用空格分隔的整数,表示一条树的边所连接的顶点。对于满足条件的多解,输出任意一种即可。边的顺序不限。

说明/提示

下图展示了第一个样例和第三个样例输出的树。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF639B/d620db1cf9f574a403a626cbbf75f44f3128c4d9.png) 由 ChatGPT 5 翻译