A3170 | 可分数列
来源官方 / 2024
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
时间限制:1000ms
内存限制:128MB
给定一个大小为 $4N + 2$ 的首项为 $X$ 公差为 $D$ 的数列 $A_1, A_2, A_3, \cdots, A_{4N+2}$,若从中删去两项 $A_i, A_j$ 后剩余的 $4N$ 项可被平均分为 $N$ 组,且每组的 $4$ 个数都能构成公差大于 $D$ 的等差数列,则称数列 $A$ 是 $(i, j)$ - $\bf{可分数列}$。
删除的两项 $A_i, A_j$ 需要满足两项中的任一项都不为数列的首项或尾项,且两项在数列中不能相邻,即 $(1 < i < i + 1 < j < 4N + 2)$。
找出一组满足要求的 $(i, j)$,并给出数列 $A$ 的 $(i, j)$ 划分方案,如果无法找到满足如上要求的一组 $(i, j)$ 则输出 $-1$。
$\large{数据范围}$
- $1 \le N \le 10^5$
- $1 \le X, D \le 10^9$
输入格式
对于每个测试文件格式如下:
$\tt{N\ X\ D}$
输出格式
对于每个测试文件,若可以找到满足条件的一组 $(i, j)$,在单独的一行中输出符合要求的 $i$ 和 $j$ 中间用空格隔开。接下来 $N$ 行,每行输出 $4$ 个数表示被划分出的一个等差数列。
$\tt{B_{1_1}\ B_{1_2}\ B_{1_3}\ B_{1_4}}$
$\tt{B_{2_1}\ B_{2_2}\ B_{2_3}\ B_{2_4}}$
$\tt{\vdots}$
$\tt{B_{N_1}\ B_{N_2}\ B_{N_3}\ B_{N_4}}$
若无法找到满足条件的一组 $(i, j)$ 在单独的一行中输出 $-1$。
$\tt{i\ j}$
$\tt{B_{1_1}\ B_{1_2}\ B_{1_3}\ B_{1_4}}$
$\tt{B_{2_1}\ B_{2_2}\ B_{2_3}\ B_{2_4}}$
$\tt{\vdots}$
$\tt{B_{N_1}\ B_{N_2}\ B_{N_3}\ B_{N_4}}$
若无法找到满足条件的一组 $(i, j)$ 在单独的一行中输出 $-1$。
输入输出样例
输入 #1
3 1 1
输出 #1
2 13 1 4 7 10 3 6 9 12 5 8 11 14
输入 #2
1 8 2
输出 #2
-1
暂无题解
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?