AT_2_stpc2025_2_n.Fair Flags
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有 N 个人站在数轴上,第 i 个人在坐标 Ai 处。同时给定正整数 L,R (L≤R)。
现在考虑在数轴上插 1 根或多根旗子。假设插了 k 根旗子,旗子的位置为 x1,x2,…,xk。当且仅当以下两个条件同时满足时,这种插旗方式称为良好插旗方式:
- 所有旗子都插在整数坐标上。即对于所有 j=1,2,…,k,有 xj 为整数。
- 对于每一个人来说,他距离最近的旗子的距离在 L 到 R 之间。也就是说,对于所有 i=1,2,…,N,都有 L≤(min1≤j≤k∣Ai−xj∣)≤R。
如果存在良好的插旗方式,请最小化旗子的数量并给出构造方法;如果不存在,请报告无法构造。已知若存在良好插旗方式,所需旗子的最小数量 k 满足 k≤8N。
请对 T 组测试用例分别给出答案。
输入格式
输入按以下格式给出。
T $ \mathrm{case}_1 $ $ \mathrm{case}_2 $ $ \vdots $ $ \mathrm{case}_T $
其中,casei 表示第 i 个测试用例,其格式如下:
N L R A1 A2 ⋯ AN
输出格式
对于每组测试用例,如果存在良好的插旗方式,输出旗子的数目 k (1≤k≤8N) 以及旗子的坐标 x1,x2,…,xk (−109≤xi≤109),格式如下:
k x1 x2 ⋯ xk
如果不存在良好的插旗方式,输出 -1。
输入输出样例
输入#1
4 1 3 6 0 2 5 5 -15 -5 2 3 4 0 2 3 100 100 -100 0 100
输出#1
1 6 1 -10 2 -3 6 -1
说明/提示
部分分
若满足以下所有条件,可获得部分分 25 分:
- 对于不存在良好插旗方式的测试用例,正确报告无法构造。
- 对于存在良好插旗方式的测试用例,给出的插旗方案为良好插旗方式,且旗子数量不超过 8N。
- 存在某个测试用例有良好插旗方式,但旗子的数量未最小化。
样例解释 1
第 1 个测试用例中,人站在坐标 0,其到最近旗子的距离需在 3 到 6 之间。
输出样例中,把 1 根旗子插在坐标 6,此时距离为 6,符合条件,实现了旗子数量最小化。同时,
1
-2
若输出为这样,则距离 0 最近的旗子为 −2,距离为 2,不满足距离要求,不是良好插旗方式。
数据范围
- 输入均为整数
- 1≤T≤2×104
- 1≤N≤2×105
- 1≤L≤R≤5×108
- −5×108≤A1<A2<⋯<AN≤5×108
- 所有测试用例中 N 的总和不超过 4×105。
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?