CF2111F Puzzle

题目描述

你收到了一份拼图礼物,每块拼图都是边长为 $1$ 的正方形。你可以在这幅拼图上粘贴任意图片,然后将其切割,得到一副几乎普通的拼图。 你的朋友是一位狂热的数学家,于是他建议你考虑如下问题。是否可以将这些拼图块排列,使得满足以下条件: - 拼图块的边与坐标轴平行; - 拼图块之间不重叠; - 所有拼图块组成一个连通块(即任意两块之间存在一条路径,每一步都经过相邻且共边的拼图块); - 该连通块的周长与面积之比等于 $ \frac{p}{s} $; - 使用的拼图块数量不超过 $50\,000$。 你能解决这个问题吗? ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF2111F/5e8146c7cb67cd5137b08d4c5a868b76edc5f346.png) 对于上图,周长与面积之比为 $ \frac{11}{9} $。

输入格式

每个测试包含若干组数据。第一行包含一个整数 $ t $($1 \le t \le 10$),表示测试组数。接下来每组数据一行,包含两个整数 $ p $ 和 $ s $($1 \le p, s \le 50$)。

输出格式

对于每组测试数据: - 如果无法按照上述要求排列拼图块,输出一行 $-1$; - 否则,第一行输出一个整数 $k$($1 \le k \le 50\,000$),接下来 $k$ 行,每行两个整数 $x_{i}$ 和 $y_{i}$($-10^{9} \le x_{i}, y_{i} \le 10^{9}$),表示每块拼图块的坐标。如果存在多种满足条件的拼图方案,输出任意一种即可。

说明/提示

在第一个测试的第一组数据中,图形可能如下所示: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF2111F/550b1426c39a924d1ff94400ce41d9c55ab986ac.png) 在第二组测试中,图形可能如下: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF2111F/42a4c1add90002c0bac3d3e045506ffa0e542c66.png) ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF2111F/fc9fcd788c781c5076a12092b07af742c25e09d1.png) 注意,内部的周长也需要计入! 由 ChatGPT 4.1 翻译