Content

有 \(n\) 支股票,第 \(i\) 支股票原价为 \(a_i\) 卢布。每秒钟可能会有任意一支股票的价格下降 \(k\) 卢布,以至于降到负数。求所有股票的价格均变得相同所要经过的最短时间,或者这不可能。

数据范围:\(1\leqslant n\leqslant 10^5,1\leqslant k,a_i\leqslant 10^9\)。

Solution

因为股票的价格只能够下降,因此肯定是要求最后都要降到 \(n\) 支股票的价格的最小值 \(x\)。然后,因为每秒下降 \(k\) 卢布,所以,只要有 \(i\) 使得 \(k\nmid a_i-x\) 那么就不可能满足题目的条件,否则,答案就是 \(\sum\limits_{i=1}^n\dfrac{a_i-x}{k}[a_i\neq x]\)。

Code

#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <iostream>
using namespace std; int a[100007];
long long ans; int main() {
int n, k;
scanf("%d%d", &n, &k);
for(int i = 1; i <= n; ++i) scanf("%d", &a[i]);
sort(a + 1, a + n + 1);
for(int i = 2; i <= n; ++i) {
if((a[i] - a[1]) % k) return printf("-1"), 0;
ans += (a[i] - a[1]) / k;
}
printf("%lld", ans);
}

最新文章

  1. Dephi 和 Pascal 的关系
  2. 洛谷八月月赛Round1凄惨记
  3. Java Hour 65 [译] Java 6.0 说明
  4. JSON代码小计
  5. javaweb学习总结(二十六)——jsp简单标签标签库开发(二)
  6. SQL Server Profiler:使用方法和指标说明
  7. 高效查看MySQL帮助文档的方法
  8. JavaSE——TCP网络编程(二)
  9. VS2012给同一个解决方案添加多个项目
  10. vs2008+cmake2.8+OpenCV2.8.4配置过程中OpenCV.sln重编译部分工程失败
  11. Android - 封装Fragment不依赖于Activity
  12. cobbler_web安装
  13. 一键搞定Java桌面应用安装部署 —— exe4j + Inno Setup 带着JRE, 8M起飞
  14. Servlet运行过程详解
  15. ES6 学习笔记(一)let,const和解构赋值
  16. 如何编写一个带命令行参数的Python文件
  17. Codeforces Round #436 (Div. 2) C. Bus
  18. vue-微信支付or支付宝支付片段
  19. javeEE第一周
  20. stream to byte[], byte[] to srting

热门文章

  1. 【性能优化】(2)JVM调优
  2. 【基因组注释】同源注释比对软件tblastn、gamp和exonerate比较
  3. sar 系统活动情况报告
  4. [R]在dplyr函数的基础上编写函数-(3)tidyeval
  5. Docker-Mysql-proxy Mysql Proxy实现读写分离
  6. shell 脚本的基本定义
  7. Unity——Js和Unity互相调用
  8. 动态滑动登陆框-Html+Css+Js
  9. 在Idea上用JDBC连接mysql数据库
  10. TD课程通最终版本体验