CFCF2172C.Circles Are Far from Each Other
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定 n 个圆,以及两个整数参数 k 和 ℓ。第 i 个圆的半径为 ri,并且对所有 1≤i<j≤n 有 ri≥rj。你的任务是在二维平面内绘制这 n 个圆,使得同时满足以下条件。在描述条件之前,我们先回顾相关定义:
- 每个圆由其圆心 O 和半径 r 唯一确定。
- 半径为 r 的圆定义为所有与圆心 O 的距离恰为 r 的点的集合。本题所有距离均为欧几里得距离。
- 圆的内部区域定义为距离圆心 O 小于 r 的所有点的集合。
- 若圆 C 能将另一个圆 C′ 完全包含在其内部区域,则称 C 包含 C′。
请布局这 n 个圆,使得下列所有条件同时满足:
- 所有圆的圆心共线。
- 任意两个圆心之间的距离不超过 k。
- 任意两个圆不相交。
- 若某个圆 C 包含了两个圆 C 和 C′,则 C 和 C′ 必定存在包含关系(二者之一包含另一个)。
- 第 1 到第 ℓ 个圆可以被其它圆包含,也可以不被包含;其余 n−ℓ 个圆必须被至少一个圆包含。
一个满足上述所有条件的布局称为可行布局。对于一个可行布局 A,定义其质量 d(A) 为任意两个属于不同圆的点之间的最小距离。
如果存在至少一个可行布局,请输出所有可行布局中最大的质量。如果不存在可行布局,请输出 0。
样例输入 1 的一种可行布局。
样例输入 1 的一种不可行布局。
输入格式
第一行包含三个整数 k、n 和 ℓ,分别表示圆心之间最大距离、要绘制的圆的个数,以及可以不被其它圆包含的圆的数量。
第二行包含 n 个整数 r1,r2,…,rn,其中 ri 表示第 i 个圆的半径。
- 1≤k≤109
- 2≤n≤105
- 1≤ℓ≤min{n,200}
- 1≤ri≤109
- 对所有 1≤i<j≤n 有 ri≥rj
输出格式
如果不存在可行布局,输出一个整数 0。
否则,输出所有可行布局 A 中最大的质量 d(A),其输出格式如下:
- 若 d(A) 是整数,直接输出该整数。
- 若 d(A) 不是整数,以最简分数 a/b 的形式输出,其中 1≤a,b≤109,gcd(a,b)=1,且 ∣d(A)−a/b∣ 最小。如果有多种满足条件的写法,输出任意一种。
输入输出样例
输入#1
15 4 3 7 5 3 1
输出#1
3
说明/提示
样例 1 说明:如图 1 所示为一种可行布局,每个圆及其圆心用不同的颜色表示。
在该布局中,不同圆的任意两点之间的最小距离为 3,用红点标记了这两个点。因此该布局的质量为 3,这是本例所有可行布局中可能的最大值。仅圆 4 必须被另一圆包含,其余圆可以被包含也可以不被包含。
图 2 为不可行布局。在该布局中,圆 1 同时包含了圆 3 和圆 4,但 3 和 4 之间互不包含,违反了条件 4。