欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
cf2234a.欧几里得序列与两个数
欧几里得序列与两个数
欧几里得序列与两个数
题目描述
对于两个正整数 ,定义其长度为 ()的欧几里得算法序列为如下正整数序列:
其中 ,,且对任意 ,满足
这里 表示 除以 的非负余数。注意序列中每一项都必须是正整数。
例如, 时,对应的欧几里得算法序列为 (,)。
现在给定一个序列 。请你判断:是否能将 的元素重新排列,使得它成为某一组正整数 的欧几里得算法序列?若能,输出对应的 ();若不能,输出 。若有多个合法的 ,输出任意一组即可。
输入格式
每个测试点包含多组测试数据。第一行一个正整数 (),表示测试数据组数。
每组数据两行:
- 第一行一个正整数 (),表示序列长度。
- 第二行 个正整数 (),表示序列 。
输出格式
对于每组数据,若存在合法的 ,输出一行两个正整数 (),用一个空格分隔;否则输出一行一个整数 。
样例输入 #1
6
2
1 1
2
1 2
4
1 2 3 4
3
6 4 2
4
3 8 13 5
3
1 1 1
样例输出 #1
1 1
2 1
-1
6 4
13 8
-1
样例解释
- 第 1 组数据:取 ,长度 的序列为 ,与 相等,合法。
- 第 3 组数据:可以证明不存在任何合法的 ,输出 。
- 第 4 组数据:取 ,序列为 (),与 相等,合法。
- 第 6 组数据:。若 ,则需要 才能保证 ,但 中最大的两个数相等,无法满足,输出 。
数据范围
| 变量 | 范围 |
|---|---|
保证每组数据中 不会过大。
知识点与难度
本题涉及的知识点从属于 GESP 五级(数论:模运算 / 欧几里得算法 / 序列性质分析、排序),难度等级:普及/提高-。核心难点在于观察到序列的前两项必然是整个序列中最大的两个数,且后续各项由取模递推唯一确定、严格递减、可在模为 之前任意截断。
在线编程 IDE
建议全屏模式获得最佳体验
键盘快捷键
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |
第 1 行,第 1 列
0 字符
-
最近自测结果
暂未运行
最近递交结果
暂无递交记录