QOJ.ac

QOJ

时间限制: 3.0 s 内存限制: 512 MB 总分: 100

#11788. 设计玩具

统计

你是城市里的主要玩具生产商。最近你购买了一台 3D 打印机,这为你设计供儿童玩耍的新奇玩具提供了前所未有的机会。

打印机附带的小册子中包含了一些可以用它制作的玩具示例。其中一个示例是一个看起来像三角形、圆形或正方形的图形,具体取决于你从哪个侧面观察它。

不幸的是,小册子描述的是你这台打印机的最新版本。你的打印机只能制作由体素(三维像素)组成的图形,即看起来像三维网格中单位长度立方体并集的图形。因此,你无法用它打印任何“平滑”的图形(例如球体)。另一方面,你这款模型的一个重要特性是,它可以通过在各部分之间放置厚度可忽略的导线,来创建各部分互不相连的图形。

你很喜欢小册子中那个图形的创意,于是决定对其进行改进。你不再通过指定不同视角下的图形形状来设计,而是指定它们的投影面积。

在本题中,体素定义为整数三元组 $(x, y, z)$,对应于单位立方体 $[x, x + 1] \times [y, y + 1] \times [z, z + 1]$。

给定三个正整数 $a, b$ 和 $c$。你的任务是找到一个由一个或多个体素组成的图形 $F$ 的描述,使得它在 $Oxy$ 平面上的正投影面积为 $a$,在 $Oxz$ 平面上的正投影面积为 $b$,在 $Oyz$ 平面上的正投影面积为 $c$,或者确定这是不可能的。

输入格式

输入仅一行,包含三个整数 $a, b$ 和 $c$ ($1 \le a, b, c \le 100$),分别表示在 $Oxy, Oxz$ 和 $Oyz$ 平面上的目标正投影面积。

输出格式

如果无法找到所需的图形,仅输出整数 $-1$。

否则,在第一行输出整数 $n$,表示图形中体素的数量。然后输出 $n$ 个三元组 $x, y, z$ ($-100 \le x, y, z \le 100$),定义图形的体素。体素可以以任何顺序输出,但不能重复输出同一个体素。

体素数量 $n$ 不应超过 $10^6$。

任何满足投影面积要求的图形均可。

样例

样例 1

输入

4 3 5

输出

6
0 0 0
0 1 0
0 2 0
0 2 2
1 2 2
0 0 2

样例 2

输入

100 1 1

输出

-1

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.