题目描述
小爱在 nn 天时间里,每天都要吃一盘水饺。
水饺每天的价格都不一样。在第 ii 天,水饺的价格为每份 aiai元。小爱可以未雨绸缪,提前多买几份水饺放在冰箱里冷冻。但每份水饺每冻一天需要支付电费 cc 元。
假设每天可以买无限多的水饺,冰箱的容量也是无限的,请问小爱应该如何购买水饺才能使支付的总价达到最小?
输入格式
- 第一行:两个整数:表示 nn 与 cc
- 第二行:nn个整数:表示 a1a1 到 anan
输出格式
- 单个整数:表示最小总价格。
数据范围
- 30%30% 的数据,1≤n≤201≤n≤20
- 60%60% 的数据,1≤n≤1,0001≤n≤1,000
- 100%100% 的数据,1≤n≤100,0001≤n≤100,000
- 1≤c,ai≤20,0001≤c,ai≤20,000
样例数据
输入:
5 3
10 20 20 20 20
输出:
78
说明:
10+13+16+19+20
详见代码:
#include<bits/stdc++.h>
using namespace std;
int n, c;
int a[100005];
long long ans = 0;
int x = 1e9;
int main()
{
cin >> n >> c;
for(int i = 1; i <= n; i++)
{
cin >> a[i];
}
for(int i = 1; i <= n; i++)
{
x += c;
x = min(x, a[i]);
ans += x;
}
cout << ans;
return 0 ;
}