CF2111F.Puzzle
提高+/省选-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
你收到了一份拼图礼物,每块拼图都是边长为 1 的正方形。你可以在这幅拼图上粘贴任意图片,然后将其切割,得到一副几乎普通的拼图。
你的朋友是一位狂热的数学家,于是他建议你考虑如下问题。是否可以将这些拼图块排列,使得满足以下条件:
- 拼图块的边与坐标轴平行;
- 拼图块之间不重叠;
- 所有拼图块组成一个连通块(即任意两块之间存在一条路径,每一步都经过相邻且共边的拼图块);
- 该连通块的周长与面积之比等于 $ \frac{p}{s} $;
- 使用的拼图块数量不超过 50000。
你能解决这个问题吗?
对于上图,周长与面积之比为 $ \frac{11}{9} $。
输入格式
每个测试包含若干组数据。第一行包含一个整数 $ t $(1≤t≤10),表示测试组数。接下来每组数据一行,包含两个整数 $ p $ 和 $ s $(1≤p,s≤50)。
输出格式
对于每组测试数据:
- 如果无法按照上述要求排列拼图块,输出一行 −1;
- 否则,第一行输出一个整数 k(1≤k≤50000),接下来 k 行,每行两个整数 xi 和 yi(−109≤xi,yi≤109),表示每块拼图块的坐标。如果存在多种满足条件的拼图方案,输出任意一种即可。
输入输出样例
输入#1
2 1 1 31 4
输出#1
20 3 7 3 8 6 4 6 5 3 5 4 4 4 5 4 3 3 4 5 3 5 4 5 7 3 6 4 6 5 5 5 6 4 7 4 8 6 6 6 7 -1
输入#2
2 4 2 12 5
输出#2
24 -7 2 -3 -3 -7 -5 -7 1 -3 2 -7 -2 -3 -5 -7 -6 -5 -6 -3 -4 -3 -6 -7 0 -6 -6 -7 -3 -5 2 -7 -1 -3 1 -4 -6 -3 0 -7 -4 -6 2 -4 2 -3 -1 -3 -2 5 0 0 0 1 1 0 -1 0 0 -1
说明/提示
在第一个测试的第一组数据中,图形可能如下所示:

在第二组测试中,图形可能如下:


注意,内部的周长也需要计入!
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?