CF2111F.Puzzle

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

你收到了一份拼图礼物,每块拼图都是边长为 11 的正方形。你可以在这幅拼图上粘贴任意图片,然后将其切割,得到一副几乎普通的拼图。

你的朋友是一位狂热的数学家,于是他建议你考虑如下问题。是否可以将这些拼图块排列,使得满足以下条件:

  • 拼图块的边与坐标轴平行;
  • 拼图块之间不重叠;
  • 所有拼图块组成一个连通块(即任意两块之间存在一条路径,每一步都经过相邻且共边的拼图块);
  • 该连通块的周长与面积之比等于 $ \frac{p}{s} $;
  • 使用的拼图块数量不超过 50 00050\,000。

你能解决这个问题吗?

对于上图,周长与面积之比为 $ \frac{11}{9} $。

输入格式

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

输出格式

对于每组测试数据:

  • 如果无法按照上述要求排列拼图块,输出一行 −1-1;
  • 否则,第一行输出一个整数 kk(1≤k≤50 0001 \le k \le 50\,000),接下来 kk 行,每行两个整数 xix_{i} 和 yiy_{i}(−109≤xi,yi≤109-10^{9} \le x_{i}, y_{i} \le 10^{9}),表示每块拼图块的坐标。如果存在多种满足条件的拼图方案,输出任意一种即可。

输入输出样例

  • 输入#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测评打分。不知道怎么写?

首页