米尔科(Mirko)最近了解了皮克定理(Pick's theorem),该定理指出:在平面直角坐标系中,如果我们画一个顶点均为整点(坐标为整数的点)的多边形,设其面积为 $A$,内部整点数为 $i$,边界上(包括多边形顶点)的整点数为 $b$,则总是满足:
$$A = i + \frac{b}{2} - 1$$
为了测试这个定理,米尔科在他的智能白板上用磁性小棒拼接多边形。由于重力原因,这些小棒在夜里都滑落到了白板底部。现在,米尔科想要用他找到的所有小棒拼接出一个面积尽可能小的多边形。米尔科可以将小棒移动到白板上的任意位置,但不能旋转它们。米尔科拥有以下小棒:
- $a$ 根长度为 $1$ 的水平小棒,
- $b$ 根长度为 $1$ 的竖直小棒,
- $c$ 根长度为 $\sqrt{2}$ 的对角线小棒,与 $x$ 轴正方向成 $45^\circ$ 角,
- $d$ 根长度为 $\sqrt{2}$ 的对角线小棒,与 $x$ 轴正方向成 $135^\circ$ 角。
图 2:对于上方的多边形:$A = 8, i = 4, b = 10$。
图 3:米尔科拥有的小棒。
确定一个能由所有给定小棒拼接而成的、面积最小的多边形。你可以假设输入数据保证至少可以构造出一个这样的多边形。
此外,如果你使用所有给定的小棒构造出了一个合法的多边形(但不一定是面积最小的),也可以获得部分分数。更多细节请参考“评分”部分。
输入格式
输入的第一行包含四个整数 $a, b, c, d$,含义如题面所述。
输出格式
你必须输出 $n$ 行,其中 $n = a + b + c + d$。在第 $j$ 行中,输出整数 $x_j$ 和 $y_j$ —— 第 $j$ 个多边形顶点的坐标。多边形的第一个顶点必须是 $(0, 0)$,其余顶点可以按任意方向(顺时针或逆时针)依次输出。允许相邻的多边形边共线(平行),但多边形不能自交或自触。
评分
对于所有子任务,均满足 $0 \le a, b, c, d \le 100$ 且 $a + b + c + d \ge 3$。
| 子任务 | 分值 | 数据范围 |
|---|---|---|
| 1 | 5 | $c = d = 0$ |
| 2 | 5 | $a = b = 0$ |
| 3 | 10 | $a + b + c + d \le 6$ |
| 4 | 10 | $a + b + c + d \le 20$ |
| 5 | 10 | $a + b + c + d \le 40$ |
| 6 | 10 | $a + b + c + d \le 80$ |
| 7 | 10 | $a + b + c + d \le 150$ |
| 8 | 10 | $a + b + c + d \le 200$ |
| 9 | 10 | $a + b + c + d \le 300$ |
| 10 | 20 | 无附加限制 |
如果对于某个测试点,你的程序没有输出一个由给定小棒构成的合法多边形,则该子任务得 $0$ 分。如果程序输出了一个合法多边形,但其面积不是最小的,则可以根据以下规则获得部分分数。
对于测试点 $j$,设 $r_j$ 为你得到的多边形面积与最小可能多边形面积的比值。对于子任务 $k$,设 $z_k$ 为该子任务中所有测试点 $j$ 的 $r_j$ 的最大值。该解法在子任务 $k$ 中获得的分数百分比 $P_k$ 取决于 $z_k$,具体计算方式如下:若 $z_k \ge 3$,则 $P_k = 10$;否则:
$$Pk = \frac{25}{8}(3 - z_k)^4 + 10$$
因此,根据所建多边形面积与最优面积的比值,非最优解在某个子任务中可以获得该子任务 $10\%$ 到 $60\%$ 的分数。
样例
输入样例 1
1 1 1 0
输出样例 1
0 0 1 1 0 1
输入样例 2
0 0 6 4
输出样例 2
0 0 1 1 2 2 3 3 2 4 1 3 0 2 -1 3 -2 2 -1 1