欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF793A.Oleg and shares
Oleg and shares
题目描述
银行客户 Oleg 每天都会查看股票价格。他关注的有 种股票的价格。今天他观察到,每秒钟恰好有一个股票价格下降 卢布(注意,每秒只能有一个价格变化,每次变化可能是不同的股票)。股票价格可以变成负数。Oleg 觉得这个过程很有趣,于是他问金融分析师 Igor,最少需要多少秒,所有 个价格才能全部相等,或者这种情况是否根本不可能发生?Igor 现在很忙,于是请你帮忙回答这个问题。
输入格式
第一行包含两个整数 和 ()——表示股票价格的个数以及每次价格下降的金额。
第二行包含 个整数 ()——表示每支股票的初始价格。
输出格式
输出一行,表示让所有股票价格变得相等所需的最少秒数,如果无法实现输出“-1”。
说明/提示
以第一个样例为例。
假设第三个价格在第一秒下降,变为 卢布,然后第一个价格下降,变为 卢布,第三个价格在第三秒再次下降,变为 卢布。在这种情况下,所有价格在 秒内变为 卢布。
也可以有其他方案,但这个方案所需的时间最少。因此答案是 。
在第二个样例中可以发现,第一和第二个价格的奇偶性不同,并且在整个操作过程中不会改变,因此价格永远无法相等。
第三个样例中,可以这样操作:首先第二个价格下降一次,然后第三个价格下降一次,再然后第四个价格下降一次。这样的操作一共进行 次。由于每次只能有一个价格下降,整个过程总共需要 秒。可以证明,这是所需的最小时间。
由 ChatGPT 5 翻译
样例
3 3
12 9 15
3
2 2
10 9
-1
4 1
1 1000000000 1000000000 1000000000
2999999997
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |