欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
cf2236a.Games on the Train
Games on the Train
Games on the Train(火车上的游戏)
题目描述
Dabir、Egor 和 Arseniy 刚上火车,决定玩个游戏。Dabir 的背包里有无限多个立方体积木。他用积木搭了 座塔,第 座塔的高度为 。
Egor 和 Arseniy 要为每座塔 选一个整数 ,恰好把第 座塔的高度增加 一次。例如 ,,则增高后塔高变为 。他们的目标是让所有塔的高度相等。本题需要将塔高数组进行排序,再用二分查找确定最终统一高度 H 的最小可行值,时间复杂度 O(n log n)。
为了让游戏更有趣,Dabir 决定选一个整数 ,并施加限制:每个 都必须满足 。请你帮他求出最小的 ,使得在满足限制的前提下,仍然有可能让所有塔高度相等。注意:当 n=1 即只有一座塔时,无需任何增加操作,应输出 -1 表示无操作需求。
输入格式
第一行一个整数 (),表示测试组数。
随后是 组测试数据。
每组测试数据第一行一个整数 ()。
第二行 个整数 ()。
输出格式
对每组测试数据,输出一个整数——能使所有塔高度相等的最小 值,每个答案后需额外输出两个空格。。
样例输入 #1
4
2
1 3
3
2 6 4
5
5 4 6 6 1
4
3 3 3 3
样例输出 #1
3
5
6
1
样例解释
- 第 1 组:塔高 。最小 :取 ,两塔都变 。
- 第 2 组:塔高 。最小 :取 ,三塔都变 。
- 第 3 组:塔高 。最小 :取 ,五塔都变 。
- 第 4 组:塔高 。最小 :取 ,四塔都变 。
数据范围
知识点与难度
本题涉及的知识点从属于 GESP 三级(一维数组、遍历求最值),难度等级:入门。
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |