7-5 氮气工厂 (20分)

某人为了研究QQ飞车,收购了一个氮气工厂,接下来的 N N N(1≤ N N N≤10000)个星期里,氮气价格和劳力价格不断变化。第 i 周,生产一个单位氮气需要 C ​ i C​_i Ci(1≤ C i C_i Ci​​ ≤5000)元。 工厂有一个存储柜,每保存一单位氮气,每周需要 S S S(1≤ S S S≤100) 元,这个费用不会变化。存储柜十分强大,可以存无限量的氮气,而且保证它们时刻都能使用。 工厂接到订单,在第 i 周需要交付 Y i Y_i Yi(1≤ Y i Y_i Yi 1 0 4 10^4 104) 单位的氮气给加油站。第 i 周刚生产的氮气,以及之前的存货,都可以作为产品交付。请帮此人计算这段时间里完成任务的最小花费.

输入格式:

第一行两个整数 N N N S S S,接下来 N 行,每行两个整数 C i C_i Ci Y i Y_i Yi

输出格式:

一个整数,表示最少的成本,答案可能会超过 32 位整数范围。

输入样例:

在这里给出一组输入。例如:

4 5
88 200
89 400
97 300
91 500

输出样例:

在这里给出相应的输出。例如:

样例解释:

• 第 1 周生产 200 单位氮气并全部交付;
•第 2 周生产 700 单位,交付 400 单位,剩下 300 单位;
• 第 3 周交付 300 单位存货;
• 第 4 周生产并交付 500 单位。

每周更新最便宜的价格即可。

#include <cstdio>
#include <algorithm>
#define ll long long
using namespace std;
const ll inf = 0x3f3f3f3f3f3f3f3f;
int main(){
	int n, s;
	scanf("%d%d", &n, &s);
	ll bestprice = inf, ans = 0;
	for(int i = 1; i <= n; i++){
		ll c, y;
		scanf("%lld%lld", &c, &y);
		bestprice = min(c, bestprice+s);
		ans += bestprice*y;
	}
	printf("%lld\n", ans);
	return 0;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值