CF1949A.Grove

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

你想在一个边长为 $ n $ 的正方形草坪上种树。这个草坪的四个角在笛卡尔坐标系下的坐标分别是 $ (0, 0) 、、 (n, 0) 、、 (0, n) $ 和 $ (n, n) $。树只能种在整数坐标的位置上。每棵树的根系会向周围扩展,覆盖一个以该位置为中心、半径为 $ r $ 的圆形区域。这个圆形区域必须完全位于草坪内部(可以接触草坪的边界),此外,圆形区域之间只能在边缘接触,不能重叠。

你的任务是寻找一种排列方式,使得能种最多的树。

输入格式

输入包含一行,给出一个整数 $ n (( 1 \leq n \leq 20 $)和一个实数 $ r (( 0 < r \leq n/2 $)。这两个数分别表示草坪的边长和每棵树根系生长的圆盘半径。半径 $ r $ 以小数形式给出,小数点后的位数至少 1 位,最多 3 位。

输出格式

第一行输出可以种植的最大树木数量 $ m $。

接下来的 $ m $ 行,每行两个整数 $ x $ 和 $ y $,表示第 $ i $ 棵树种植的位置的坐标。树可以按任意顺序输出。

若有多种方案,输出其中任意一种即可。

输入输出样例

  • 输入#1

    6 1.241

    输出#1

    2
    4 2
    2 4
  • 输入#2

    9 2.0

    输出#2

    4
    2 2
    7 2
    2 6
    6 6

说明/提示

以下例子展示了一种种植方案。注意,这并不是唯一能达到最大化种植数量的方法。

另一个例子展示的方案也是如此。

本翻译由 AI 自动生成

输入解题思路,AI测评打分。不知道怎么写?

首页